Thread overview
gl3n - OpenGL Maths for D
Aug 31, 2012
David
Aug 31, 2012
Iain Buclaw
Aug 31, 2012
jerro
Aug 31, 2012
cal
August 31, 2012
I updated gl3n today and added:

* AABBs (axis aligned bounding boxes)
* Planes
* Frustum (this is not 100% tested yet, but seems to work)

I also switched from cuteDoc to bootDoc.

On my TODO-list:

* the two open issues (nothing too important)
* improve color support
* SIMD

Regarding SIMD, what's the current state? I heared from Manu that it's not fully implemented by DMD, but it should work with GDC?

Anything you miss?

For all who don't know what I am speaking about ;):

Github: https://github.com/Dav1dde/gl3n
Documentation: http://dav1dde.github.com/gl3n/


- David
August 31, 2012
On 31 August 2012 17:54, David <d@dav1d.de> wrote:
> I updated gl3n today and added:
>
> * AABBs (axis aligned bounding boxes)
> * Planes
> * Frustum (this is not 100% tested yet, but seems to work)
>
> I also switched from cuteDoc to bootDoc.
>
> On my TODO-list:
>
> * the two open issues (nothing too important)
> * improve color support
> * SIMD
>
> Regarding SIMD, what's the current state? I heared from Manu that it's not fully implemented by DMD, but it should work with GDC?
>

That's debatable.

- DMD implements 16 and 32 byte vectors (actually, it only supports 16
byte vectors anyway).
- GDC implements 8, 16, and 32 byte vectors.


- DMD has it's own __simd intrinsics that are not portable to other compilers.
- GDC provides __builtin_* functions depending on whether the backend
architecture implements them, which are also not portable to other
compilers.

Other than that, you can bet that the usual + - / * operators work and produce the correct code on GDC, not sure on the state of DMD...

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
August 31, 2012
On Friday, 31 August 2012 at 16:54:49 UTC, David wrote:
> Anything you miss?

Matrix constructor for building projection matrices (I have a bit of code for doing this from near/far + FOV if you want it, but there are plenty examples on google).

I've also found it useful to be able to set a given matrix column using a vector, I didn't see a function specifically for this (row-major makes it handy to have a dedicated function for this).

Nice work!
August 31, 2012
> Other than that, you can bet that the usual + - / * operators work and
> produce the correct code on GDC, not sure on the state of DMD...

In my experience at least + - * work correctly with SIMD using DMD.