From ee3717d24dd26f00ab79a77d846a9cba7926afb0 Mon Sep 17 00:00:00 2001 From: underscorediscovery Date: Sun, 1 Dec 2013 05:14:19 -0330 Subject: [PATCH] Neko; Making it possible to build low level lime neko builds, but there is some weirdities still. --- examples/SimpleOpenGL/src/Main.hx | 14 +++++++------- lime/InputHandler.hx | 3 +-- lime/LiME.hx | 10 +++++++--- lime/RenderHandler.hx | 24 ++++++++++++++---------- lime/WindowHandler.hx | 1 + templates/neko/ndll/mac/libneko.dylib | Bin templates/neko/ndll/mac/regexp.ndll | Bin templates/neko/ndll/mac/sqlite.ndll | Bin templates/neko/ndll/mac/std.ndll | Bin templates/neko/ndll/mac/zlib.ndll | Bin templates/neko/ndll/mac64/libneko.dylib | Bin templates/neko/ndll/mac64/regexp.ndll | Bin templates/neko/ndll/mac64/sqlite.ndll | Bin templates/neko/ndll/mac64/std.ndll | Bin templates/neko/ndll/mac64/zlib.ndll | Bin 15 files changed, 30 insertions(+), 22 deletions(-) mode change 100755 => 100644 templates/neko/ndll/mac/libneko.dylib mode change 100755 => 100644 templates/neko/ndll/mac/regexp.ndll mode change 100755 => 100644 templates/neko/ndll/mac/sqlite.ndll mode change 100755 => 100644 templates/neko/ndll/mac/std.ndll mode change 100755 => 100644 templates/neko/ndll/mac/zlib.ndll mode change 100755 => 100644 templates/neko/ndll/mac64/libneko.dylib mode change 100755 => 100644 templates/neko/ndll/mac64/regexp.ndll mode change 100755 => 100644 templates/neko/ndll/mac64/sqlite.ndll mode change 100755 => 100644 templates/neko/ndll/mac64/std.ndll mode change 100755 => 100644 templates/neko/ndll/mac64/zlib.ndll diff --git a/examples/SimpleOpenGL/src/Main.hx b/examples/SimpleOpenGL/src/Main.hx index 72e41899f..6fcb0035d 100644 --- a/examples/SimpleOpenGL/src/Main.hx +++ b/examples/SimpleOpenGL/src/Main.hx @@ -53,18 +53,18 @@ class Main { //Create a set of vertices var vertices : Float32Array = new Float32Array([ - 100, 100, 0, - -100, 100, 0, - 100, -100, 0, - -100, -100, 0 + 100.0, 100.0, 0.0, + -100.0, 100.0, 0.0, + 100.0, -100.0, 0.0, + -100.0, -100.0, 0.0 ]); //Create a buffer from OpenGL - vertexBuffer = GL.createBuffer (); + vertexBuffer = GL.createBuffer(); //Bind it - GL.bindBuffer (GL.ARRAY_BUFFER, vertexBuffer); + GL.bindBuffer( GL.ARRAY_BUFFER, vertexBuffer ); //Point it to the vertex array! - GL.bufferData (GL.ARRAY_BUFFER, vertices, GL.STATIC_DRAW); + GL.bufferData( GL.ARRAY_BUFFER, vertices, GL.STATIC_DRAW ); } //init diff --git a/lime/InputHandler.hx b/lime/InputHandler.hx index f0be73db1..e524eb8e8 100644 --- a/lime/InputHandler.hx +++ b/lime/InputHandler.hx @@ -22,7 +22,7 @@ class InputHandler { touch_map = new Map(); down_keys = new Map(); - #if lime_html5 + #if lime_html5 lime_apply_input_listeners(); #end //lime_html5 } @@ -154,7 +154,6 @@ class InputHandler { last_mouse_x = _event.x; last_mouse_y = _event.y; - // trace("mouse moved, new : " + _event.x + ' ' + _event.y); // trace("mouse moved, delta : " + deltaX + ' ' + deltaY); if(lib.host.onmousemove != null) { diff --git a/lime/LiME.hx b/lime/LiME.hx index 899ceaada..72a96ccf1 100644 --- a/lime/LiME.hx +++ b/lime/LiME.hx @@ -67,9 +67,13 @@ class LiME { _debug(':: lime :: initializing -'); _debug(':: lime :: Creating window at ' + config.width + 'x' + config.height); - //default to 60 fps + //default to 60 fps if( config.fps != null ) { - frame_rate = Std.parseFloat( config.fps ); + if(Std.is(config.fps, String)) { + frame_rate = Std.parseFloat( config.fps ); + } else { + frame_rate = config.fps; + } } else { //config.fps frame_rate = 60; } @@ -269,7 +273,7 @@ class LiME { window.on_focus(_event); case SystemEvents.redraw: - window.on_redraw(true); + window.on_redraw(_event); case SystemEvents.shouldrotate: window.on_should_rotate(_event); diff --git a/lime/RenderHandler.hx b/lime/RenderHandler.hx index 3c5dc203b..387c493a6 100644 --- a/lime/RenderHandler.hx +++ b/lime/RenderHandler.hx @@ -38,6 +38,8 @@ class RenderHandler { public var lib : LiME; public function new( _lib:LiME ) { lib = _lib; } + public var __handle : Dynamic; + //direct_renderer_handle for drawing public var direct_renderer_handle : Dynamic; @@ -47,15 +49,23 @@ class RenderHandler { public var canvas_position : Dynamic; #end //lime_html5 + + @:noCompletion private function __onRender(rect:Dynamic):Void { + + + } + public function startup() { #if lime_native + __handle = lime_get_frame_stage( lib.window_handle ); + //Set up the OpenGL View direct_renderer_handle = lime_direct_renderer_create(); //Add this to the main stage, so it will render - lime_doc_add_child( lib.view_handle, direct_renderer_handle ); + lime_doc_add_child( __handle, direct_renderer_handle ); //Set this handle to the real view with a render function lime_direct_renderer_set( direct_renderer_handle, on_render ); @@ -218,27 +228,20 @@ class RenderHandler { #if lime_html5 - // trace('render.render'); - - on_render(); - + on_render(null); _requestAnimFrame( lib.on_update ); return true; #end #if lime_native - // trace("now doing render"); - // lime_stage_request_render(); - lime_render_stage( lib.view_handle ); - // lime_stage_request_render(); #end //lime_native return true; } - public function on_render() { + public function on_render(rect:Dynamic):Void { if( lib.host.render != null ) { lib.host.render(); @@ -249,6 +252,7 @@ class RenderHandler { //lime functions #if lime_native + private static var lime_get_frame_stage = Libs.load("lime","lime_get_frame_stage", 1); private static var lime_stage_request_render = Libs.load("lime","lime_stage_request_render", 0); private static var lime_render_stage = Libs.load("lime","lime_render_stage", 1); private static var lime_doc_add_child = Libs.load("lime","lime_doc_add_child", 2); diff --git a/lime/WindowHandler.hx b/lime/WindowHandler.hx index 00e796653..5b8ce4353 100644 --- a/lime/WindowHandler.hx +++ b/lime/WindowHandler.hx @@ -224,6 +224,7 @@ class WindowHandler { } public function on_redraw( _event:Dynamic ) { + trace(_event); lib.render.render(); } //on_redraw diff --git a/templates/neko/ndll/mac/libneko.dylib b/templates/neko/ndll/mac/libneko.dylib old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac/regexp.ndll b/templates/neko/ndll/mac/regexp.ndll old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac/sqlite.ndll b/templates/neko/ndll/mac/sqlite.ndll old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac/std.ndll b/templates/neko/ndll/mac/std.ndll old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac/zlib.ndll b/templates/neko/ndll/mac/zlib.ndll old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac64/libneko.dylib b/templates/neko/ndll/mac64/libneko.dylib old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac64/regexp.ndll b/templates/neko/ndll/mac64/regexp.ndll old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac64/sqlite.ndll b/templates/neko/ndll/mac64/sqlite.ndll old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac64/std.ndll b/templates/neko/ndll/mac64/std.ndll old mode 100755 new mode 100644 diff --git a/templates/neko/ndll/mac64/zlib.ndll b/templates/neko/ndll/mac64/zlib.ndll old mode 100755 new mode 100644