RFC: OpenGL 3.3, 4.0 and 4.1 support

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

RFC: OpenGL 3.3, 4.0 and 4.1 support

Sven Gothel
Administrator
Please review and comment to the integration of the 'new' OpenGL versions.

Maybe you find:
        - missing enums / funcs
        - wrong enums / funcs grouping
                - extension / version
                - java interface (GL2ES2, GL2GL3, GL2, GL3*, GL4*)
        - ??

+++

http://github.com/sgothel/jogl/commit/ca119c97340caf325cd682c5fdbe8f794a35ac0e

Add OpenGL 3.3, 4.0 and 4.1 language mapping.

- Update header:
    - GL/glext.h to khronos 2010-08-03
    - GL3/gl3.h to khronos 2010-08-03

    - Move platform code to
        GL/glplatform.h
        GL3/glplatform.h

    - Unify 64bit typedefs: gl-64bit-types.h

    - Move GL 3.[123] and 4.[01] complete subsumed extension
      enums and functions into their extension spec and just reference them.
      This ensures proper extension availability
      via lower OpenGL profiles, hence a proper GL2GL3 interface.

- GL3/GL4 cleanup:
  - make-glextension-depignore.sh:
    determine required GL version for extensions
    for proper positioning, ie GL2GL3 or GL3 or GL4
    via gluegen IgnoreExtension commands.

  - use ARB_ES2_compatibility for common GL2ES2 methods,
    if available

  - consolidated gl2-gl4 subsumed extension to gl-common.cfg

- Missing GL3/GL4 Functions:
    glMultiDrawElementsBaseVertex
    glDebugMessageCallbackARB
    glDebugMessageCallbackAMD

- TODO (new feature integration):
    - ARB_ES2_compatibility / ARB_get_program_binary for com/jogamp/opengl/util/glsl, ie
        - store binaries com/jogamp/opengl/util/glsl/sdk/CompileShader*
        - query supported binary formats (enums ?)
        - optional prio binaries
    - ARB_ES2_compatibility, if available GLES2/GL2ES12 would be available
    - ARB_separate_shader_objects for com/jogamp/opengl/util/glsl, ie
        - swizzle vertex/fragment shader in programs
        - ..

signature.asc (845 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFC: OpenGL 3.3, 4.0 and 4.1 support

Demoscene Passivist
Administrator
... finally GL4 support  Need to buy a new gpu ...
Reply | Threaded
Open this post in threaded view
|

Re: RFC: OpenGL 3.3, 4.0 and 4.1 support

Matt
In reply to this post by Sven Gothel
Hi,

Thanks for bringing JOGL up to date with GL versions!

I just want to report that the following functions:

GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer);

have been removed after last commits from gl3.h file, and become now unavailable in GL3 java interface.
One have to cast the invocations to GL2 interface because this is where they landed.
I think it's improper, because according to the spec and man pages ( http://www.opengl.org/sdk/docs/man3/ ) these functions are part of GL3.3 core profile.
Reply | Threaded
Open this post in threaded view
|

Re: RFC: OpenGL 3.3, 4.0 and 4.1 support

Sven Gothel
Administrator
On Tuesday, August 24, 2010 22:58:54 Matt [via jogamp] wrote:

>
> Hi,
>
> Thanks for bringing JOGL up to date with GL versions!
>
> I just want to report that the following functions:
>
> GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei
> count, GLsizei primcount);
> GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count,
> GLenum type, const GLvoid *indices, GLsizei primcount);
> GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat,
> GLuint buffer);
>
> have been removed after last commits from gl3.h file, and become now
> unavailable in GL3 java interface.

> One have to cast the invocations to GL2 interface because this is where they
> landed.
> I think it's improper, because according to the spec and man pages (
> http://www.opengl.org/sdk/docs/man3/ ) these functions are part of GL3.3
> core profile.

Thank you for finding these.

Of course they should be in.

I have moved them to the extensions (which they actually are part of):
        GL_ARB_draw_instanced
        GL_ARB_texture_buffer_object

and subsumed them into core with the 'RenameExtensionIntoCore' command.

This should allow them to be part of GL2GL3 as well.

As it seems - there is a bug, ie it doesn't work, I will look at it now.

~Sven


--
health & wealth
mailto:[hidden email] ; http://jausoft.com
land : +49 (471) 4707742 ; cell: +49 (151) 28145941
Timezone CET: PST+9, EST+6, UTC+1
Reply | Threaded
Open this post in threaded view
|

Re: RFC: OpenGL 3.3, 4.0 and 4.1 support

Sven Gothel
Administrator
In reply to this post by Matt
On Tuesday, August 24, 2010 22:58:54 Matt [via jogamp] wrote:

>
> Hi,
>
> Thanks for bringing JOGL up to date with GL versions!
>
> I just want to report that the following functions:
>
> GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei
> count, GLsizei primcount);
> GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count,
> GLenum type, const GLvoid *indices, GLsizei primcount);
> GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat,
> GLuint buffer);
>
> have been removed after last commits from gl3.h file, and become now
> unavailable in GL3 java interface.
> One have to cast the invocations to GL2 interface because this is where they
> landed.
> I think it's improper, because according to the spec and man pages (
> http://www.opengl.org/sdk/docs/man3/ ) these functions are part of GL3.3
> core profile.
>
>
Fixed 1b2f7ebe62ce661eb32cc9caf74c6c49c8c5f15a

~Sven
Reply | Threaded
Open this post in threaded view
|

Re: RFC: OpenGL 3.3, 4.0 and 4.1 support

gouessej
Administrator
In reply to this post by Sven Gothel
Where is glDrawElementsInstanced(int mode, int indices_count, int type, long indices_buffer_offset, int primcount)?
There is only glDrawElementsInstanced(int mode, java.nio.IntBuffer indices, int primcount) whereas I need the first one :(
Julien Gouesse | Personal blog | Website