Skip to content

Conversation

Laar
Copy link
Contributor

@Laar 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 30 commits May 8, 2011 18:06
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.
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).
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.
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.
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.) .
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.
There id further dupport for quering framebufferobjcts (FBO) their attachements and renderbuffers. It also implements PixellikeObjectTarget where appropriate.
This adds the tokens that are updated by the 3.0 spec of OpenGL
MAX_VARYING_COMPONENTS,
MAX_CLIP_DISTANCES and
CLIP_DISTANCE i.
FramebufferObjects.Queries
export renderbufferSamples
removed import of TextureTarget

Texturing.TextureTarget
otherwise guard for unmarshalCubeMapTarget
adds CapRasterizerDiscard

adds a lot of Pixel(Internal)Format constructors for OpenGL 3.0.
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).
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?).
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.
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).
This is necessary for a future getFBAPName query of 
AttachmentComponentType.
This changes `maybe f id` to `fromMaybe f` and some monadic functions.
Laar and others added 17 commits September 1, 2011 16:01
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
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.
Conflicts:
	Graphics/Rendering/OpenGL/GL/Shaders.hs
Hand merged get/bind FragDataLocation and the Uniform instance of
TextureUnit.
Conflicts:
	Graphics/Rendering/OpenGL/GLU/ErrorsInternal.hs
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.
dagit added a commit that referenced this pull request Sep 13, 2012
@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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants