de_window 0.1.0

Provides window and OpenGL context creation cross platform.


To use this package, run the following command in your project's root directory:

Devisualization Window Toolkit

Window creational toolkit, cross platform. Written in D.
Depends on Derelict-GL3 for Opengl support.
Gitter Build Status

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+) creation (Windows, X11, OSX (Cocoa))
  • 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.

TODO

  • Confirm prevent close works on Windows and X11
  • Context creation (Direct3D on Windows)
  • On window redisplay(undo of minimise)/maximise/minimise
  • Confirm Buffer2d context works on Posix

X11 based window manager weird behaviours:

  • Make sure icons work on Posix
  • Make sure full screen works correctly on Posix (tempermental on XFCE)
Authors:
  • Richard Andrew Cattermole
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
Show all 15 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 510 downloads total

Score:
0.7
Short URL:
de_window.dub.pm