On Saturday, 3 September 2016 at 09:30:58 UTC, Darren wrote:
Thanks for the information. The errors for the tutorial I
_was_ trying to make work are as follows:
source\app.d(9,5): Error: undefined identifier 'Window', did
you mean variable 'window'?
source\app.d(98,12): Error: undefined identifier 'Window', did
you mean variable 'window'?
source\app.d(101,14): Error: undefined identifier 'GLBuffer'
source\app.d(104,14): Error: undefined identifier 'Shader'
source\app.d(107,13): Error: undefined identifier 'Program',
did you mean variable 'program'?
source\app.d(110,15): Error: undefined identifier 'Attribute'
I thought I might have needed another package for these, and
gfm seemed to contain what I need in the form of the opengl
sub-package. But even after importing that, it only gets rid
of the GLBuffer error.
I tried to follow another tutorial. Link to source code:
http://www.learnopengl.com/code_viewer.php?code=getting-started/hellotriangle
I'm having more success with this one. I pretty much hacked
away at this and did my best to convert from C-style code to D.
The window gets made and it has the green-ish background, but
it's not drawing any triangles. Should I copy/paste the code
I'm using in case I made a mistake?
It's not quite in a practically-usable state yet, but the SDL2 &
OpenGL wrapper I'm working on may interest you as an example
implementation if nothing else.
https://github.com/pineapplemachine/mach.d/tree/master/mach/sdl
Here's an example of a functioning program using the package. At
the moment I'm working on exposing SDL2's event and other input
systems.
import std.datetime;
import mach.math.vector2;
import mach.sdl.window;
import mach.sdl.texture;
import mach.sdl.color;
import mach.sdl.primitives;
void main(){
// Create a window
auto win = new Window(300, 300);
win.position = Vector2!int(200, 200);
// Load a texture
auto tex = Texture("pineapple.png");
// Loop for 5 seconds
StopWatch sw;
sw.start();
auto maxms = 5000f;
while(true){
auto ms = sw.peek().msecs;
if(ms >= maxms) break;
// Fill with green
win.clear(0, ms / maxms / 2, 0);
// Draw centered image
tex.draw((win.size - tex.size) / 2);
// Draw red lines at top and bottom
lines(Color!ubyte.Red,
Vector2!int(8, 8), Vector2!int(292, 8),
Vector2!int(292, 292), Vector2!int(8, 292)
);
// Display changes
win.swap();
}
}