de_window ~master
Provides window and OpenGL context creation cross platform.
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
Devisualization Window Toolkit
Window creational toolkit, cross platform. Written in D.
Depends on Derelict-GL3 for Opengl support.
There is currently issues for running within Cygwin on Windows. The window may seem choppy and will not auto flush standard output. There is no clear cut fix for this at the present time as it is on Cygwin's side.
Features
- Create, Destroy, On draw
- Move, Resize
- Key down/up with modifiers
- Mouse left/right/middle down/up
- Window Icon, Text
- OpenGL (both legacy and 3+) context creation (Windows, X11, OSX (Cocoa))
- Direct3d context creation on windows (untested)
- 2D image buffer drawing context
Example
Custom event loop
import devisualization.window.window;
import std.stdio;
void main() {
Window window = new Window(800, 600, "My window!"w);
window.show();
window.addOnDraw((Windowable window2) {
writeln("drawing");
});
while(true) {
import core.thread : Thread;
import core.time : dur;
Window.messageLoopIteration();
if (window.hasBeenClosed)
break;
else
window.onDraw();
//Thread.sleep(dur!"msecs"(25));
}
}
Thread sleep is optional, as messageLoopIteration is blocking but may not wait for a message.
However it should be one draw per x time units. For most efficient loop.
During the drawing, check if you have a valid context. OnDraw may occur while there is no valid context.
Using as a dub package
To add de_window
as a dependency to your project use:
"dependencies": {
"de_window:platform": "~>0.1.2",
}
Of course instead of "~>0.1.2" can/should be your version number.
TODO
- Confirm prevent close works on Windows and X11
- Direct3d abstraction within interfaces?
- On window redisplay(undo of minimise)/maximise/minimise
- Add messageLoopIteration respective function for wait till message (win/lin/osx)
X11 based window manager weird behaviours:
- Make sure icons work on Posix
- Make sure full screen works correctly on Posix (tempermental on XFCE)
- ~master released 9 years ago
- devisualization/window
- github.com/Devisualization/window
- MIT
- Copyright © 2014, Richard Andrew Cattermole, Devisualization
- Authors:
- Sub packages:
- de_window:interfaces, de_window:platform, de_window:test
- Dependencies:
- none
- Versions:
-
0.1.3 2015-Jun-20 0.1.2 2015-Apr-08 0.1.1 2015-Apr-07 0.1.0 2015-Feb-15 0.0.10 2015-Jan-31 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
0 downloads this month
-
540 downloads total
-
- Score:
- 1.0
- Short URL:
- de_window.dub.pm