Changeset 46
- Timestamp:
- 02/16/07 22:09:34 (2 years ago)
- Files:
-
- trunk/luigi/adapter.d (modified) (3 diffs)
- trunk/luigi/examples/example1_gld.brf (modified) (1 diff)
- trunk/luigi/examples/example1_gld.d (modified) (2 diffs)
- trunk/luigi/examples/example1_glfw.brf (modified) (1 diff)
- trunk/luigi/examples/example1_sdl.brf (modified) (1 diff)
- trunk/luigi/examples/example1d_glfw.brf (modified) (1 diff)
- trunk/luigi/gui.d (modified) (2 diffs)
- trunk/luigi/opengl.d (modified) (1 diff)
- trunk/luigi/signalobj.d (modified) (5 diffs)
- trunk/luigi/themes/dxut.d (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/luigi/adapter.d
r33 r46 51 51 interface InputAdapter 52 52 { 53 // These are "raw" callbacks in that they haven't yet been translated or dispatched 54 // to widgets. This is all the input that comes in at the window level. 55 // Luigi uses these to get input which is then dispatched to widgets based on 56 // current focus item, location of the mouse, etc. 53 /** 54 * These are "raw" callbacks in that they haven't yet been translated or dispatched 55 * to widgets. This is all the input that comes in at the window level. 56 * Luigi uses these to get input which is then dispatched to widgets based on 57 * current focus item, location of the mouse, etc. 58 * See event.d for the definitons of the function types. 59 */ 57 60 void addKeyCallback(KeyEventFn cb) ; 58 61 void addMouseButtonCallback(MouseButtonEventFn cb) ; … … 69 72 void addWindowSizeCallback(WindowSizeEventDg cb) ; 70 73 void addWindowCloseCallback(WindowCloseEventDg cb) ; 74 75 76 // remove raw system callback 77 void removeKeyCallback(KeyEventFn cb) ; 78 void removeMouseButtonCallback(MouseButtonEventFn cb) ; 79 void removeMouseMoveCallback(MouseMoveEventFn cb) ; 80 void removeMouseWheelCallback(MouseWheelEventFn cb) ; 81 void removeWindowSizeCallback(WindowSizeEventFn cb) ; 82 void removeWindowCloseCallback(WindowCloseEventFn cb) ; 83 84 // And again for delegates... 85 void removeKeyCallback(KeyEventDg cb) ; 86 void removeMouseButtonCallback(MouseButtonEventDg cb) ; 87 void removeMouseMoveCallback(MouseMoveEventDg cb) ; 88 void removeMouseWheelCallback(MouseWheelEventDg cb) ; 89 void removeWindowSizeCallback(WindowSizeEventDg cb) ; 90 void removeWindowCloseCallback(WindowCloseEventDg cb) ; 71 91 72 92 Size get_window_size(WindowHandle h); … … 135 155 void addWindowSizeCallback(WindowSizeEventDg cb) {_lsig.windowSize.connect(cb);} 136 156 void addWindowCloseCallback(WindowCloseEventDg cb) {_lsig.windowClose.connect(cb);} 157 158 // Implementation of InputAdapter 159 void removeKeyCallback(KeyEventFn cb) {_lsig.key.disconnect(cb);} 160 void removeMouseButtonCallback(MouseButtonEventFn cb) {_lsig.mouseButton.disconnect(cb);} 161 void removeMouseMoveCallback(MouseMoveEventFn cb) {_lsig.mouseMove.disconnect(cb);} 162 void removeMouseWheelCallback(MouseWheelEventFn cb) {_lsig.mouseWheel.disconnect(cb);} 163 void removeWindowSizeCallback(WindowSizeEventFn cb) {_lsig.windowSize.disconnect(cb);} 164 void removeWindowCloseCallback(WindowCloseEventFn cb) {_lsig.windowClose.disconnect(cb);} 165 166 // And again for delegates... 167 void removeKeyCallback(KeyEventDg cb) {_lsig.key.disconnect(cb);} 168 void removeMouseButtonCallback(MouseButtonEventDg cb) {_lsig.mouseButton.disconnect(cb);} 169 void removeMouseMoveCallback(MouseMoveEventDg cb) {_lsig.mouseMove.disconnect(cb);} 170 void removeMouseWheelCallback(MouseWheelEventDg cb) {_lsig.mouseWheel.disconnect(cb);} 171 void removeWindowSizeCallback(WindowSizeEventDg cb) {_lsig.windowSize.disconnect(cb);} 172 void removeWindowCloseCallback(WindowCloseEventDg cb) {_lsig.windowClose.disconnect(cb);} 137 173 } 138 174 trunk/luigi/examples/example1_gld.brf
r45 r46 8 8 -full 9 9 -cleanup 10 -version=useDerelict11 10 -I$(DMDDIR)\baxissimo 12 -I$(DMDDIR)\ext 13 -I$(DMDDIR)\ext\schooner\gld\imports 14 -I$(DMDDIR)\ext\derelict\DerelictGL 15 -I$(DMDDIR)\ext\derelict\DerelictGLU 16 -I$(DMDDIR)\ext\derelict\DerelictUtil 11 -I$(DMDDIR)\dmd\import 12 -I$(DMDDIR)\dmd\import\schooner\win32\imports 13 -I$(DMDDIR)\dmd\import\schooner\gl\imports 14 -I$(DMDDIR)\dmd\import\schooner\gld\imports 17 15 example1_gld 18 16 # GLD only works as a library currently 19 $(DMDDIR)\ext\schooner\gld\gld.lib 20 $(DMDDIR)\ext\schooner\win32\win32.lib 21 $(DMDDIR)\ext\schooner\win32\gdi32.lib 22 $(DMDDIR)\ext\schooner\win32\winmm.lib 17 $(DMDDIR)\dmd\import\schooner\gl\gl.lib 18 $(DMDDIR)\dmd\import\schooner\gl\opengl32.lib 19 $(DMDDIR)\dmd\import\schooner\gl\glu32.lib 20 $(DMDDIR)\dmd\import\schooner\gld\gld.lib 21 $(DMDDIR)\dmd\import\schooner\win32\win32.lib 22 $(DMDDIR)\dmd\import\schooner\win32\gdi32.lib 23 $(DMDDIR)\dmd\import\schooner\win32\winmm.lib trunk/luigi/examples/example1_gld.d
r42 r46 42 42 43 43 import gld; 44 import derelict.opengl.gl; 45 import derelict.opengl.glu; 44 version (useDerelict) { 45 import derelict.opengl.gl; 46 import derelict.opengl.glu; 47 } else { 48 import gl; 49 import glu; 50 } 51 46 52 import std.string; 47 53 import std.stdio : writefln; … … 49 55 static this() 50 56 { 51 DerelictGL.load(); 52 DerelictGLU.load(); 57 version(useDerelict) { 58 DerelictGL.load(); 59 DerelictGLU.load(); 60 } 53 61 gldInit(); 54 62 } trunk/luigi/examples/example1_glfw.brf
r45 r46 8 8 -full 9 9 -cleanup 10 -version=useDerelict 10 11 -I$(DMDDIR)\baxissimo 11 -I$(DMDDIR)\ ext12 -I$(DMDDIR)\ ext\derelict\DerelictGL13 -I$(DMDDIR)\ ext\derelict\DerelictGLU14 -I$(DMDDIR)\ ext\derelict\DerelictUtil15 -I$(DMDDIR)\ ext\derelict\DerelictGLFW12 -I$(DMDDIR)\dmd\import 13 -I$(DMDDIR)\dmd\import\derelict\DerelictGL 14 -I$(DMDDIR)\dmd\import\derelict\DerelictGLU 15 -I$(DMDDIR)\dmd\import\derelict\DerelictUtil 16 -I$(DMDDIR)\dmd\import\derelict\DerelictGLFW 16 17 example1_glfw trunk/luigi/examples/example1_sdl.brf
r42 r46 10 10 -version=useDerelict 11 11 -I$(DMDDIR)\baxissimo 12 -I$(DMDDIR)\ext 13 -I$(DMDDIR)\ext\schooner 14 -I$(DMDDIR)\ext\derelict\DerelictGL 15 -I$(DMDDIR)\ext\derelict\DerelictUtil 16 -I$(DMDDIR)\ext\derelict\DerelictSDL 12 -I$(DMDDIR)\dmd\import 13 -I$(DMDDIR)\dmd\import\derelict\DerelictGL 14 -I$(DMDDIR)\dmd\import\derelict\DerelictUtil 15 -I$(DMDDIR)\dmd\import\derelict\DerelictSDL 17 16 example1_sdl.d trunk/luigi/examples/example1d_glfw.brf
r45 r46 9 9 -full 10 10 -cleanup 11 -version=useDerelict 11 12 -I$(DMDDIR)\baxissimo 12 -I$(DMDDIR)\ ext13 -I$(DMDDIR)\ ext\derelict\DerelictGL14 -I$(DMDDIR)\ ext\derelict\DerelictGLU15 -I$(DMDDIR)\ ext\derelict\DerelictUtil16 -I$(DMDDIR)\ ext\derelict\DerelictGLFW13 -I$(DMDDIR)\dmd\import 14 -I$(DMDDIR)\dmd\import\derelict\DerelictGL 15 -I$(DMDDIR)\dmd\import\derelict\DerelictGLU 16 -I$(DMDDIR)\dmd\import\derelict\DerelictUtil 17 -I$(DMDDIR)\dmd\import\derelict\DerelictGLFW 17 18 -Texample1d_glfw 18 19 example1_glfw trunk/luigi/gui.d
r44 r46 207 207 char[][] m_resource_path; 208 208 } 209 210 211 /// Add a system-level input callback 212 void add_key_callback(KeyEventFn cb) {Luigi().adapter.addKeyCallback(cb);} 213 void add_mouse_button_callback(MouseButtonEventFn cb) {Luigi().adapter.addMouseButtonCallback(cb); } 214 void add_mouse_move_callback(MouseMoveEventFn cb) {Luigi().adapter.addMouseMoveCallback(cb);} 215 void add_mouse_wheel_callback(MouseWheelEventFn cb) {Luigi().adapter.addMouseWheelCallback(cb);} 216 void add_window_size_callback(WindowSizeEventFn cb) {Luigi().adapter.addWindowSizeCallback(cb);} 217 void add_window_close_callback(WindowCloseEventFn cb) {Luigi().adapter.addWindowCloseCallback(cb);} 218 219 void remove_key_callback(KeyEventFn cb) {Luigi().adapter.removeKeyCallback(cb);} 220 //void add_mouse_button_callback(MouseButtonEventFn cb) {Luigi().adapter.addMouseButtonCallback(cb); } 221 //void add_mouse_move_callback(MouseMoveEventFn cb) {Luigi().adapter.addMouseMoveCallback(cb);} 222 //void add_mouse_wheel_callback(MouseWheelEventFn cb) {Luigi().adapter.addMouseWheelCallback(cb);} 223 //void add_window_size_callback(WindowSizeEventFn cb) {Luigi().adapter.addWindowSizeCallback(cb);} 224 //void add_window_close_callback(WindowCloseEventFn cb) {Luigi().adapter.addWindowCloseCallback(cb);} 225 226 227 /// ditto 228 void add_key_callback(KeyEventDg cb) {Luigi().adapter.addKeyCallback(cb);} 229 void add_mouse_button_callback(MouseButtonEventDg cb) {Luigi().adapter.addMouseButtonCallback(cb);} 230 void add_mouse_move_callback(MouseMoveEventDg cb) {Luigi().adapter.addMouseMoveCallback(cb);} 231 void add_mouse_wheel_callback(MouseWheelEventDg cb) {Luigi().adapter.addMouseWheelCallback(cb);} 232 void add_window_size_callback(WindowSizeEventDg cb) {Luigi().adapter.addWindowSizeCallback(cb);} 233 void add_window_close_callback(WindowCloseEventDg cb) {Luigi().adapter.addWindowCloseCallback(cb);} 234 209 235 210 236 … … 1121 1147 hostwin = win; 1122 1148 Size sz = Luigi().get_window_size(win); 1123 writefln("Window size = ", sz);1124 1149 set_rect(Rect(0,0,sz.w,sz.h)); 1125 1150 Luigi().add_overlay(this); trunk/luigi/opengl.d
r6 r46 31 31 module luigi.opengl; 32 32 33 version(useDerelict) { 33 34 public import derelict.opengl.gl; 35 } else { 36 public import gl; 37 } 34 38 35 trunk/luigi/signalobj.d
r23 r46 125 125 * be implicitly converted at runtime is allowed. 126 126 * 127 * So for example, the (int, char[]) FlexSig al can be connected to a127 * So for example, the (int, char[]) FlexSignal can be connected to a 128 128 * method taking a (double,char[]) because int is automatically 129 129 * promoted to double. … … 187 187 void disconnect(DT)(DT f) { 188 188 static if( is(DT==slot_t) ) { 189 s.disconnect _exact(f);189 s.disconnect(f); 190 190 } 191 191 else { … … 200 200 201 201 if (f_key in thunkMap) { 202 s.disconnect _exact(thunkMap[f_key]);202 s.disconnect(thunkMap[f_key]); 203 203 } else { 204 204 debug writefln("FlexSignal.fdisconnect: Slot not found"); … … 362 362 363 363 auto sig1 = new SignalObj!(int); 364 sig1.connect _exact(&s1.slot1);365 //sig1.connect _exact(&s1.slot0); // error mismatch364 sig1.connect(&s1.slot1); 365 //sig1.connect(&s1.slot0); // error mismatch 366 366 367 367 writefln(">>> SignalObject EMIT"); … … 435 435 //---------------------------------------------------------------------------- 436 436 // needed to run tests 437 //void main(){} 438 437 version (unittestmain) { 438 void main(){} 439 } 440 trunk/luigi/themes/dxut.d
r43 r46 38 38 import std.perf; 39 39 40 version (useDerelict) { 40 41 import derelict.opengl.extension.arb.texture_compression; 42 } else { 43 private 44 { 45 PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glCompressedTexImage3DARB; 46 PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB; 47 PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glCompressedTexImage1DARB; 48 PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glCompressedTexSubImage3DARB; 49 PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glCompressedTexSubImage2DARB; 50 PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glCompressedTexSubImage1DARB; 51 PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB; 52 53 version(Windows) 54 import win32.wingdi; // for wgl funcs 55 else version(linux) 56 version = UsingGLX; 57 version(UsingGLX) 58 import x11.glx; 59 import string=std.string; 60 61 bool glBindExtFunc(void **ptr, char[] funcName) 62 { 63 version(Windows) 64 *ptr = wglGetProcAddress(string.toStringz(funcName)); 65 else version(UsingGLX) 66 *ptr = glXGetProcAddress(string.toStringz(funcName)); 67 return (*ptr !is null); 68 } 69 } 70 } 71 41 72 static const GLint GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0; 42 73 static const GLint GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1; … … 44 75 static const GLint GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3; 45 76 77 78 46 79 void initialize_compressed_texture_extension() 47 80 { 48 if (!ARBTextureCompression.load("GL_ARB_texture_compression")) 81 bool allOk = true; 82 version(useDerelict) { 83 if (!ARBTextureCompression.load("GL_ARB_texture_compression")) 84 allOk=false; 85 } 86 else { 87 if(!glBindExtFunc(cast(void**)&glCompressedTexImage3DARB, "glCompressedTexImage3DARB")) 88 allOk = false; 89 if(!glBindExtFunc(cast(void**)&glCompressedTexImage2DARB, "glCompressedTexImage2DARB")) 90 allOk = false; 91 if(!glBindExtFunc(cast(void**)&glCompressedTexImage1DARB, "glCompressedTexImage1DARB")) 92 allOk = false; 93 if(!glBindExtFunc(cast(void**)&glCompressedTexSubImage3DARB, "glCompressedTexSubImage3DARB")) 94 allOk = false; 95 if(!glBindExtFunc(cast(void**)&glCompressedTexSubImage2DARB, "glCompressedTexSubImage2DARB")) 96 allOk = false; 97 if(!glBindExtFunc(cast(void**)&glCompressedTexSubImage1DARB, "glCompressedTexSubImage1DARB")) 98 allOk = false; 99 if(!glBindExtFunc(cast(void**)&glGetCompressedTexImageARB, "glGetCompressedTexImageARB")) 100 allOk = false; 101 } 102 if (!allOk) { 49 103 throw new Exception("Unable to initialize texture compression extension"); 104 } 50 105 } 51 106
