digitalmars.D.announce - Glamour =?UTF-8?B?4oCTIEFuIG9wZW5nbCB3cmFwcGVyIGZvciBE?=
- David (23/23) Jul 26 2012 https://github.com/Dav1dde/glamour
- Mike Parker (2/9) Jul 26 2012 Nice one!
- OlaOst (5/30) Jul 26 2012 Nice work! I converted my shader sandbox program to use glamour
- David (2/6) Jul 26 2012 Thanks!
- Rene Zwanenburg (26/51) Jul 27 2012 Nice work. I did a quick review of your code, and have some
- David (10/28) Jul 27 2012 I was about to implement it, but I thought it isn't necassary, but maybe...
- Rene Zwanenburg (3/15) Jul 27 2012 Those are the ones I was talking about. But yeah, I agree that
- David (7/34) Jul 27 2012 Done. Added the template function and every call is checked (if compiled...
- Andrei Alexandrescu (3/4) Jul 27 2012 http://www.reddit.com/r/programming/comments/x9htl/glamour_an_opengl_wra...
- David (2/6) Jul 27 2012 Cool, thanks.
- Jonas Drewsen (14/15) Jul 28 2012 Just did a wrapper myself for a project I'm working on. But I
- David (10/19) Jul 28 2012 This is my personal coding-style, heavily influenced by Pythons PEP-8. I...
- Jakob Ovrum (7/16) Jul 28 2012 You are throwing consistency out of the window because of your
- Jonas Drewsen (11/19) Jul 29 2012 Fair enough.
- David (1/4) Jul 29 2012 Do whatever you wanna do ;)
https://github.com/Dav1dde/glamour Glamour wraps opengl is not an opengl binding. Currently it supports: * Sampler objects * Textures (1D, 2D, 2D_ARRAY, 3D) * Shaders * Buffers (Elementbuffers and "normal" VBOs) For the shaders a custom format is used: ----- vertex: // here goes the vertex shader geometry: // here goes the geometry shader (this section can be omitted) fragment: // here goes the fragment shader ----- Readme/Installation: https://github.com/Dav1dde/glamour/blob/master/README.md Documentation: http://dav1dde.github.com/glamour/ TODO: * support more opengl "backends", like statically linked opengl (in glamour.gl) * polish up the index.d and write a proper installation guide Pull requests are appreciated.
Jul 26 2012
On Thursday, 26 July 2012 at 13:47:42 UTC, David wrote:https://github.com/Dav1dde/glamour Glamour wraps opengl is not an opengl binding. Currently it supports: * Sampler objects * Textures (1D, 2D, 2D_ARRAY, 3D) * Shaders * Buffers (Elementbuffers and "normal" VBOs)Nice one!
Jul 26 2012
On Thursday, 26 July 2012 at 13:47:42 UTC, David wrote:https://github.com/Dav1dde/glamour Glamour wraps opengl is not an opengl binding. Currently it supports: * Sampler objects * Textures (1D, 2D, 2D_ARRAY, 3D) * Shaders * Buffers (Elementbuffers and "normal" VBOs) For the shaders a custom format is used: ----- vertex: // here goes the vertex shader geometry: // here goes the geometry shader (this section can be omitted) fragment: // here goes the fragment shader ----- Readme/Installation: https://github.com/Dav1dde/glamour/blob/master/README.md Documentation: http://dav1dde.github.com/glamour/ TODO: * support more opengl "backends", like statically linked opengl (in glamour.gl) * polish up the index.d and write a proper installation guide Pull requests are appreciated.Nice work! I converted my shader sandbox program to use glamour in just a couple of hours :) I hit a snag with DLL issues using Devil, but added code for loading textures with SDLImage. It's in a pull request now.
Jul 26 2012
Nice work! I converted my shader sandbox program to use glamour in just a couple of hours :) I hit a snag with DLL issues using Devil, but added code for loading textures with SDLImage. It's in a pull request now.Thanks! And also thanks for the already merged pull-request :).
Jul 26 2012
Nice work. I did a quick review of your code, and have some suggestions for possible improvement. Apologies for not creating a pull request, but I don't have a Git client installed. Check for errors after every GL call that can generate an error. Because GL functions fail silently, debugging why your program misbehaves after a failed GL call is almost as annoying as finding the cause of heap corruption. Also make sure that every GL call is covered, or you may get your errors at the wrong functions. The error code will not reset once it is set, until glGetError is called. These checks should be disabled in a release build, because they're quite costly. All resources are released using a release method, not the destructor. This is good. But to ease debugging, set the handle to zero in release(), and check for a zero handle in the destructor. Log a warning or something like that if the check fails. Some functions have overloads for both GLuint's and wrapper instances. Unless you really need the GLuint versions, it's probably better to remove these. Users should either use the wrappers for everything or not at all, anything in between will cause bloat, ugliness, and errors. Shader.shaders: perhaps rename to shaderSources? The ElementBuffer and Buffer constructors accepting a pointer will not compile, the pointer version of set_data requires a size argument. On Thursday, 26 July 2012 at 13:47:42 UTC, David wrote:https://github.com/Dav1dde/glamour Glamour wraps opengl is not an opengl binding. Currently it supports: * Sampler objects * Textures (1D, 2D, 2D_ARRAY, 3D) * Shaders * Buffers (Elementbuffers and "normal" VBOs) For the shaders a custom format is used: ----- vertex: // here goes the vertex shader geometry: // here goes the geometry shader (this section can be omitted) fragment: // here goes the fragment shader ----- Readme/Installation: https://github.com/Dav1dde/glamour/blob/master/README.md Documentation: http://dav1dde.github.com/glamour/ TODO: * support more opengl "backends", like statically linked opengl (in glamour.gl) * polish up the index.d and write a proper installation guide Pull requests are appreciated.
Jul 27 2012
Check for errors after every GL call that can generate an error. Because GL functions fail silently, debugging why your program misbehaves after a failed GL call is almost as annoying as finding the cause of heap corruption. Also make sure that every GL call is covered, or you may get your errors at the wrong functions. The error code will not reset once it is set, until glGetError is called. These checks should be disabled in a release build, because they're quite costly.I was about to implement it, but I thought it isn't necassary, but maybe I was just wrong. I'll think about it (I will definitly add a template to glamour.utils which calls the OpenGL method and adds a check)All resources are released using a release method, not the destructor. This is good. But to ease debugging, set the handle to zero in release(), and check for a zero handle in the destructor. Log a warning or something like that if the check fails.Good idea.Some functions have overloads for both GLuint's and wrapper instances. Unless you really need the GLuint versions, it's probably better to remove these. Users should either use the wrappers for everything or not at all, anything in between will cause bloat, ugliness, and errors.Really, where? If you mean the `unit` param for Samplers/Textures, that is needed, sometimes you just wanna bind the Sampler/Texture to a specific unit.Shader.shaders: perhaps rename to shaderSources?Good idea.The ElementBuffer and Buffer constructors accepting a pointer will not compile, the pointer version of set_data requires a size argument.Right. Thanks for your input.
Jul 27 2012
On Friday, 27 July 2012 at 13:29:55 UTC, David wrote:Those are the ones I was talking about. But yeah, I agree that can be useful.Some functions have overloads for both GLuint's and wrapper instances. Unless you really need the GLuint versions, it's probably better to remove these. Users should either use the wrappers for everything or not at all, anything in between will cause bloat, ugliness, and errors.Really, where? If you mean the `unit` param for Samplers/Textures, that is needed, sometimes you just wanna bind the Sampler/Texture to a specific unit.
Jul 27 2012
Am 27.07.2012 15:29, schrieb David:Done. Added the template function and every call is checked (if compiled with -debug).Check for errors after every GL call that can generate an error. Because GL functions fail silently, debugging why your program misbehaves after a failed GL call is almost as annoying as finding the cause of heap corruption. Also make sure that every GL call is covered, or you may get your errors at the wrong functions. The error code will not reset once it is set, until glGetError is called. These checks should be disabled in a release build, because they're quite costly.I was about to implement it, but I thought it isn't necassary, but maybe I was just wrong. I'll think about it (I will definitly add a template to glamour.utils which calls the OpenGL method and adds a check)Done. (If compiled with -debug)All resources are released using a release method, not the destructor. This is good. But to ease debugging, set the handle to zero in release(), and check for a zero handle in the destructor. Log a warning or something like that if the check fails.Good idea.This stays as it is.Some functions have overloads for both GLuint's and wrapper instances. Unless you really need the GLuint versions, it's probably better to remove these. Users should either use the wrappers for everything or not at all, anything in between will cause bloat, ugliness, and errors.Really, where? If you mean the `unit` param for Samplers/Textures, that is needed, sometimes you just wanna bind the Sampler/Texture to a specific unit.Renamed.Shader.shaders: perhaps rename to shaderSources?Good idea.Fixed.The ElementBuffer and Buffer constructors accepting a pointer will not compile, the pointer version of set_data requires a size argument.Right.
Jul 27 2012
On 7/26/12 9:47 AM, David wrote:https://github.com/Dav1dde/glamourhttp://www.reddit.com/r/programming/comments/x9htl/glamour_an_opengl_wrapper_for_d/ Andrei
Jul 27 2012
Am 27.07.2012 21:45, schrieb Andrei Alexandrescu:On 7/26/12 9:47 AM, David wrote:Cool, thanks.https://github.com/Dav1dde/glamourhttp://www.reddit.com/r/programming/comments/x9htl/glamour_an_opengl_wrapper_for_d/ Andrei
Jul 27 2012
On Thursday, 26 July 2012 at 13:47:42 UTC, David wrote:https://github.com/Dav1dde/glamourJust did a wrapper myself for a project I'm working on. But I would be happy to join forces. I have a couple of nitpickings though: 1, Why is the member method naming not using the standard camel case formatting as e.g. phobos does but uses underscore instead. 2, The gl3n library which glamour uses is pretty nice. It does use underscores as well but not consistently e.g. Quaternion.rotatey(). Additionally the type aliases (e.g. alias mat4) are lowercased which is not the standard and is also not how it is done in glamour (e.g alias Texture3D). How would you feel about changing the naming to the standard D conventions? I'll help you out if you think this ok. /Jonas
Jul 28 2012
1, Why is the member method naming not using the standard camel case formatting as e.g. phobos does but uses underscore instead.This is my personal coding-style, heavily influenced by Pythons PEP-8. I am using it, because I personally don't like the camelCase, because I think it makes e.g. distinguishing members from types harder or reading the names and I also don't like the look of it.2, The gl3n library which glamour uses is pretty nice. It does use underscores as well but not consistently e.g. Quaternion.rotatey(). Additionally the type aliases (e.g. alias mat4) are lowercased which is not the standard and is also not how it is done in glamour (e.g alias Texture3D).`Quaternion.rotatey`, `Matrix.rotatey` – to be honest, I don't know why I named them like that (same with the static counterparts `y_rotation`). Maybe I should change it, but I don't think that's really bad or breaks the general coding style. The aliases are lowercased to match `glsl`.How would you feel about changing the naming to the standard D conventions? I'll help you out if you think this ok.Not a fan of that, this would break existing code and has no real benefits.
Jul 28 2012
On Saturday, 28 July 2012 at 21:21:58 UTC, David wrote:This is my personal coding-style, heavily influenced by Pythons PEP-8. I am using it, because I personally don't like the camelCase, because I think it makes e.g. distinguishing members from types harder or reading the names and I also don't like the look of it.You are throwing consistency out of the window because of your own personal preference. You shouldn't be using the same style regardless of language and project.It's in your best interest to use the D style [1] if you want people to use your code. [1] http://dlang.org/dstyle.htmlHow would you feel about changing the naming to the standard D conventions? I'll help you out if you think this ok.Not a fan of that, this would break existing code and has no real benefits.
Jul 28 2012
On Saturday, 28 July 2012 at 21:21:58 UTC, David wrote:Fair enough. I really do prefer to have a consistent style thoughout code bases I work with because it makes it much easier to reason about. Since phobos is the standard library that kind of dictates the styling for me :) I've managed to find another project that does the same as Glamour and with the standard D style. I think I'll go with that one for now: https://github.com/p0nce/gfm/tree/master/opengl /Jonas1, Why is the member method naming not using the standard camel case formatting as e.g. phobos does but uses underscore instead.This is my personal coding-style, heavily influenced by Pythons PEP-8. I am using it, because I personally don't like the camelCase, because I think it makes e.g. distinguishing members from types harder or reading the names and I also don't like the look of it.
Jul 29 2012
I've managed to find another project that does the same as Glamour and with the standard D style. I think I'll go with that one for now: https://github.com/p0nce/gfm/tree/master/openglDo whatever you wanna do ;)
Jul 29 2012