-
Notifications
You must be signed in to change notification settings - Fork 26
GL3.0 support #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
GL3.0 support #27
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
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.
Merge 2.4.0.2
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.
This was referenced May 18, 2013
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.