Well, in my experience, I've noticed most of the slowdown in dbp comes from the renderer. Using this, you wouldn't mess around with the DBP window at all, and most of the non graphical functions are plenty fast enough. I've been already working on this as more than a proof of concept now and have commands to start LE, create LE meshes and materials as well as comands to manipulate them. I have also wrapped the entire input library which is needed because since the directx window is out of focus, it wont except keyboard/mouse input.
With this being said, a complete recreation of the leadwerks project wizard app runs at around 300 fps for me. The same example in C++ using the standard LE library gives me only a few more fps. Its almost completely unphased!
Aside from this, lua support is already active since it is done object level in the engine. This means when I wrap the LoadScene function up, you'll be able to load a Leadwerks Editor sbx file, and it will automatically load the media as well as scripts and just work--And this is only after about 30 or so hours work, lol.
Heres a cleaned up version of the LE Project Wizard's template written in DBP:
Graphics 800,600 // Start Leadwerks, framework, camera 1, and set lua fw variables
PositionCamera 1, 0.0, 0.0, -2.0, 0 // Position default camera
LoadMaterial 1,"abstract::cobblestones.mat" // Create our spinning cube and apply material
CreateCube 1,0
PaintMesh 1,1
CreateCube 2,0 // Create the ground cube, scale it, and apply material
ScaleMesh 2,10.0,1.0,10.0
PositionMesh 2,0.0,-2.0,0.0,0
PaintMesh 2,1
CreateDirectionalLight 1,0 // Create directional light and rotate it
TurnLight 1,45.0,45.0,45.0,0
appspeed as double float
do
appspeed = AppSpeed()
TurnMesh 1,wrapvalue(appspeed)*0.5,wrapvalue(appspeed)*0.5,wrapvalue(appspeed)*0.5,0
Flip 0 // Updates framework and flips the buffers
if AppTerminate() // Check if close button has been hit
end
endif
loop
end
Edit1: and btw, in case you haven't thought of it yet, this pretty much proves you could also write a wrapper for DX10
Edit2: Here is a screenshot of DBP running my plugin. It a Leadwerks sandbox level that was loaded with a wrapper command. The heat haze, physics, normal mapping and lighting, were all loaded automatically with one command. In this example I am able to control the Leadwerks camera with custom commands in DBP using the arrowkeys.