GL3.0 support #27

Merged
merged 47 commits into from Sep 13, 2012

Projects

None yet

2 participants

@Laar
Contributor
Laar commented Apr 16, 2012

The code for GL3.0 has been here for quite sometime, though it might not be perfect I think it's not bad either (the uncertainty comes from the code being 1 year old and having learned much since then).
Points worth looking at for improvement are:
Texture support (I've been working on it in a separate branch).
Framebuffers, which have quite a complicated API specification in C already. Maybe the Drawbuffers improves it, but I'm not sure. An extra comment/warning at drawBuffers that not all enum values are accepted should be added.

Laar added some commits May 8, 2011
@Laar Laar added Conditional rendering 5237b3e
@Laar Laar added mapping a buffer range, as in sec 2.9 of the 3.0 spec 00539ad
@Laar Laar added 3 _<- bindings to suppres warnings d823187
@Laar Laar Add indexed quering and indexed buffers
For indexed querying the frame is setup and it possible to query a single
integer. For indexed buffers, it's possible to bind them by range or in total.
The newly added transformfeedbackbuffer is the only buffer so far that is
bound by index.
02d06a7
@Laar Laar Add part of implementation of transformfeedbackbuffers
Adds
-  Some enumeration constants for querying about TFB-mode.
- TFB-mode (interleaved or seperate)
- The possibility to query the TFB-mode
 - An extra querytarget for quering the ammount of primitives written
to the transformfeedbackbuffer (TFB).
abb2c80
@Laar Laar adds TFB to shaderprograms and documents TFB's
Adds implementation for setting and getting the variables from shader programs. WIth functions to query their implementation limit, the maximum length of the varying name.
f6c592d
@Laar Laar Adds PrimitivesGenerated as query target 76cc265
@Laar Laar adds starting work on FramebufferObjects
This adds the first work on FramebufferObjects and their associated RenderbufferObjects. Most of the new data types are defined but a lot of work is yet to be done on implementing functions that work on frmaebuffers and query them, so also the new tokes that come with them are only added where necessary.
4160ef4
@Laar Laar Adds binding functions for Textures to FBO's 8302c67
@Laar Laar splits FBO to several files, adds querying partially
The orriginal module ...GL.FramebufferObjects is split into several modules
to improve readability.
It adds the basic functionality for querying framebufferobject and render-
bufferobject querying. Though almost all the realy querrying functions need
yet to be implemented.
Makes framebufferObjects queryable for their status (complete/
incomplete/etc.) .
9430227
@Laar Laar adds PixellikeObject for quering componentsize
This adds the PixellikeObjectTarget typeclass, for all objects that can be
queried about their red, blue, green, alpha, stencil and depth size. This is 
usefull for texture objects, renderbuffers and framebuffers.
d70d6df
@Laar Laar adds further support for FBO's
There id further dupport for quering framebufferobjcts (FBO) their attachements and renderbuffers. It also implements PixellikeObjectTarget where appropriate.
b76bdc3
@Laar Laar Adds updated tokens from Spec 3.0
This adds the tokens that are updated by the 3.0 spec of OpenGL
MAX_VARYING_COMPONENTS,
MAX_CLIP_DISTANCES and
CLIP_DISTANCE i.
929cafa
@Laar Laar minor fixes (im/export, unmarshal fail)
FramebufferObjects.Queries
export renderbufferSamples
removed import of TextureTarget

Texturing.TextureTarget
otherwise guard for unmarshalCubeMapTarget
918ca06
@Laar Laar adds lots of format enums (3.0), RasterizerDiscard
adds CapRasterizerDiscard

adds a lot of Pixel(Internal)Format constructors for OpenGL 3.0.
39986d5
@Laar Laar adds indexed capabilities and per buffer blending
Indexed capabilities are special capabilities that are used on index targets,
the blending capability is an example of that. It can be disabled or enabled
on per drawbuffer basis.
Indexed capabilities don't have to be capabilities (nor vice versa).
25b3699
@Laar Laar Adds support for fragDataLocation
this adds two extra functions bind/getFragDataLocation. Which can not be
easily packed into a single stateVar as the 'get' may return more than the 
'bind', and it's not clear to me what a bind should do with a Nothing 
(ignore?).
9aee901
@Laar Laar adds improvements to BufferModes and FBOAs
This adds better marshalling for FramebufferObjectAttachments (FBOAs)
and some unmarshalling functions for FBOAs and BufferMode.
It also includes the possibility to speccify a FBOA as BufferMode.
b4c4187
@Laar Laar fixes blendBuffer to use gl_DRAW_BUFFERi f4e54e2
@Laar Laar adds colorMaski, (and the used getBoolean{4i v}) addf526
@Laar Laar add support for color clamping 1a25ec8
@Laar Laar fixes a wrong offset in Colormaski ( added in addf52) 413001d
@Laar Laar Adds support for VertexArrayObjects 06b18fe
@Laar Laar relocated VertexArrayObjects to it's own module c153e62
@Laar Laar Adds extra query options for RenderbufferTarget 399af19
@Laar Laar adds extra querying for getFBAPName
This implements all the remaining query targets for getFBAPName, 
excluding ComponentType and ComponentEncoding, as I'm not yet sure
how these should be implemented (variable length).
cbf51c4
@Laar Laar Adds DataTypeType,
This is necessary for a future getFBAPName query of 
AttachmentComponentType.
fcb804e
@Laar Laar relocate all pixellikeObject code to it's own file. 2ccfa14
@Laar Laar fix a bug with unmarshaling edgeflags 4491f13
@Laar Laar Changes some code in response to hlint output.
This changes `maybe f id` to `fromMaybe f` and some monadic functions.
297a883
@Laar Laar Adds TextureUnit isntances for Uniform and Storable
An instance for Uniform is needed as TextureUnit is needed to assign
samplers. And for (Ptr TextureUnit) in uniformv of the Uniform class to
make sense TextureUnit needs to be an instance of Storable.
The Storable instance for TextureUnit unwraps the newtype layer and
stores it as an GLuint
1b88868
@Laar Laar Adds blitFrameBuffer. 598e306
@Laar Laar Splits Shaders.hs in several files for maintainability 0317578
@Laar Laar Adding some doc, and fix unused imports for previous commit 4556591
@Laar Laar Merge branch 'SplitShader'
Conflicts:
	Graphics/Rendering/OpenGL/GL/Shaders.hs
Due to adding Shaders.hs to remove some hlint warnings in 297a883
while splitting up the module in the SplitShader branch.
8b52bc1
@Laar Laar Merge branch 'master' into GL30
Conflicts:
	Graphics/Rendering/OpenGL/GL/Shaders.hs
Hand merged get/bind FragDataLocation and the Uniform instance of
TextureUnit.
6046449
@Laar Laar removes a file that shouldn't have been added in 0317578 ba575a2
@Laar Laar Merge branch 'SplitShader' 33a010f
@Laar Laar Merge branch 'master' into GL30 130cbf6
@Laar Laar Merge pull request #1 from Laar/master
Merge 2.4.0.2
8925548
@Laar Laar Merge remote branch 'hopengl/master' into develop
Conflicts:
	Graphics/Rendering/OpenGL/GLU/ErrorsInternal.hs
0ca002f
@Laar Laar Merge branch 'develop' into GL30 c72e0da
@Laar Laar Splits the PName into parts for typesafety
The types are devided into categories based on the size of the return
type (1,2,3,4 or N), the type of values (integer or floating) and
whether it can be used unindexed, indexed or both.
Possibly boolean queries should be turned of. Several old PName values
were not used and are left commented out in the current PName.
3c9dd01
@Laar Laar Cleans up the imports of the new QueryUtils.PName 8e20360
@Laar Laar Puts (unsafe) VertexAttrib queries in a module. 6166f3c
@Laar Laar Bump version number before merging back 884a6e9
@Laar Laar Merge branch 'splittingPName' into develop 284cbdc
@dagit dagit merged commit e6fd012 into haskell-opengl:master Sep 13, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment