59 lines
1.5 KiB
Haxe
59 lines
1.5 KiB
Haxe
package nmegl.core;
|
|
|
|
import nmegl.NMEGL;
|
|
import nmegl.core.Libs;
|
|
|
|
//Import GL
|
|
import nmegl.gl.GL;
|
|
import nmegl.gl.GLBuffer;
|
|
import nmegl.gl.GLProgram;
|
|
|
|
//utils
|
|
import nmegl.utils.Float32Array;
|
|
|
|
//geometry
|
|
import nmegl.geometry.Matrix3D;
|
|
|
|
class RenderHandler {
|
|
|
|
public var lib : NMEGL;
|
|
public function new( _lib:NMEGL ) { lib = _lib; }
|
|
|
|
public var user_render_function : Void->Void;
|
|
|
|
//direct_renderer_handle for NME
|
|
public var direct_renderer_handle : Dynamic;
|
|
|
|
public function startup() {
|
|
|
|
//Set up the OpenGL View
|
|
direct_renderer_handle = nme_direct_renderer_create();
|
|
|
|
//Add this to the main stage, so it will render
|
|
nme_doc_add_child( lib.stage_handle, direct_renderer_handle );
|
|
|
|
//Set this handle to the real view with a render function
|
|
nme_direct_renderer_set( direct_renderer_handle, on_render );
|
|
|
|
//Done.
|
|
lib._debug(':: NMEGL :: \t RenderHandler Initialized.');
|
|
}
|
|
|
|
public function shutdown() {
|
|
lib._debug(':: NMEGL :: \t RenderHandler shut down.');
|
|
}
|
|
|
|
public function on_render() {
|
|
if(user_render_function != null) {
|
|
user_render_function();
|
|
}
|
|
}
|
|
|
|
//nme functions
|
|
private static var nme_doc_add_child = Libs.load("nme","nme_doc_add_child", 2);
|
|
private static var nme_direct_renderer_create = Libs.load("nme","nme_direct_renderer_create", 0);
|
|
private static var nme_direct_renderer_set = Libs.load("nme","nme_direct_renderer_set", 2);
|
|
|
|
}
|
|
|
|
|