| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
(fix, incomplete still), ShaderSelectionMode, Fix default values
Besides the above mentioned additional features towards completness of the FFP emu,
the ShaderSelectionMode allows fixating a shader program configuration,
i.e. AUTO switch (default) or choosing a static shader program to avoid heavy program switches
incl. uniform/attribute updates.
|
|
|
|
|
|
|
|
|
|
| |
VBO: Always unbind VBO ASAP after data transfer (glBufferData())
and assignment (glVertexPointer(..), glVertexAttribPointer()).
It's a bug to leave it bound .. due to redundancy
and other calls which could have change the VBO binding.
Removed syncData(..), now it's only issued at enable
and hence migrated into the enable method.
|
|
|
|
|
|
| |
compile FixedFuncHook due to removed 'isDirty()'
- getModifiedBits() -> getModifiedBits(boolean clear)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generalize shader source storage type to CharSequence[]
Benefits:
- Allows code injection and general shader source editing (before compilation)
- Uses mutable StringBuilder only if editing is intended, hence reduces memory footprint
and String conversion at compilation in such case.
- ShaderCode.create(..) factory methods add nw attribute 'mutableStringBuilder'
if true method returns a mutable StringBuilder instance
which can be edited later on at the costs of a String conversion when passing to
'glShaderSource(int, int, String[], IntBuffer)'.
If <code>false</code> method returns an immutable <code>String</code> instance,
which can be passed to {@link GL2ES2#glShaderSource(int, int, String[], IntBuffer)}
at no additional costs.
- New 'edit' methods in ShaderCode: '
- int insertShaderSource(int shaderIdx, String tag, int fromIndex, CharSequence data);
- int insertShaderSource(int shaderIdx, int position, CharSequence data);
|
|
|
|
| |
Capabilities/GLContext API 'toString(StringBuilder)'
|
|
|
|
| |
ShaderState.attachShaderProgram(..)
|
|
|
|
|
|
| |
- Add multiple sources for create ShaderCode
- Add Shaderstate attachShaderProgram w/ enable flag
- Clarify doc
|
|
|
|
|
|
|
| |
subarrays
- Add GLArrayHandlerFlat gives better distinction of semantics
- update sub-array VBO name, if parent's interleaved array initializes it.
|
|
|
|
|
|
|
|
|
| |
ShaderState.getShaderState(gl)
This removes the dependency of a GLSL GLDataArray object to a specific ShaderState
and enables sharing of this VBO data, i.e. via a shared context.
Test: TestSharedContextVBOES2NEWT
|
|
|
|
|
|
| |
cstr and add interleaved seg.
vboTarget is required in case of interleaved segments to allow eg. interleaved indices.
|
|
|
|
| |
VBO/attribute binding wasn't updated (VBO data written, shader change/switch attribute on same location) ; Optimized interleaved GLSL VBO binding, hence split up GLArrayHandler syncData/enableState
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(GearsES1/ES2)
rename/reloc:
- javax.media.nativewindow.util:
DimensionReadOnly -> DimensionImmutable
PointReadOnly -> PointImmutable
RectangleReadOnly -> RectangleImmutable
unified 'immutable' name as used within jogamp already
- remove array handler from public API
com.jogamp.opengl.util.GL*ArrayHandler -> jogamp.opengl.util.GL*ArrayHandler
- GLArrayData: Clarify method names
getComponentNumber() -> getComponentCount()
getComponentSize() -> getComponentSizeInBytes()
getElementNumber() -> getElementCount()
getByteSize() -> getSizeInBytes()
- FixedFuncPipeline: Moved def. array names to GLPointerFuncUtil
enhancement:
- GLArrayDataServer: Add support for interleaved arrays/VBO
- GLArrayData*.createFixed(..) remove 'name' argument (non sense for fixed function)
- PMVMatrix:
- one nio buffer
- removed 'Pmv' multiplied matrix
- removed 2x2 cut down 'Mvi' normal matrix (use 4x4 Mvi)
-
tests:
- RedSquare -> RedSquareES1/RedSquareES2
- Gears ES1 fixed + ES2 added. Both work properly and share common Gears VBO construction
- Added TestMapBuffer01NEWT, testing glMapBuffer
|
|
|
|
|
|
|
| |
Refines spec GLArrayData and it's implementations.
see commit 4d33a2df1e991ab75817dcb44061d88d3c499cdb
see commit 2dbd16fc3edf29b39ba37a11b9fbf1b2aad75c45
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function; switch program enh. ; Graph lifecycle
Add 'ownUniform()/ownAttribute()' allowing to reset all bound uniforms/attributes,
not just active ones plus handling the lifecycle of the owned attributes (destroy).
This simplifies the lifecycle of all shader attributes.
Rename glFunction -> function .. well, the GL attribute marks them GL related already
Switch program enhancement. If switching to new program (unlinked), issue glBindAttributeLocation ..
Graph lifecycle cleanup using the above ..
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+++
Remove GL parameter for
- createFixed(..)
- createGLSL(..)
validation at client/server array data happens at 1st enableBuffer() call,
no current context or profile required at creation time.
Added ShaderState for createGLSL(..) clarifying dependency to the ShaderState,
passing it down to the GLSLArrayHandler, which also removes the TLS GLContext.getCurrent() call.
+++
Partially reverted ab48dac3f4419ceac51fdf059f310f0f0499c4d7 factory methods:
removed added vboTarget parameter, since all createFixed and createGLSL are GL_ARRAY_BUFFER (VBO).
Adding createData(..) factory method in GLArrayDataServer allowing diff vbo targets,
ie GL_ELEMENT_ARRAY_BUFFER .. or none.
|
|
|
|
|
|
|
|
|
|
| |
target, comments, names)
VBO target: Allowing ELEMENT_VERTEX_ARRAY w/o corresponding GLSL/Fixed attribute
Names: Clarified method named.
Comments: Added and fixed comments
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
jogamp.<module> (2/2) - edit files
- com.jogamp.opengl.impl -> jogamp.opengl
- com.jogamp.opengl.util.glsl.fixedfunc.impl -> jogamp.opengl.util.glsl.fixedfunc
- com.jogamp.nativewindow.impl -> jogamp.nativewindow
- com.jogamp.newt.impl -> jogamp.newt
This sorts implementation details from the top level, ie skipping the public 'com',
allowing a better seperation of public classes and implementation details
and also reduces strings.
This approach of public/private seperation is also used in the OpenJDK.
|
|
jogamp.<module> (1/2) - rename task
- com.jogamp.opengl.impl -> jogamp.opengl
- com.jogamp.opengl.util.glsl.fixedfunc.impl -> jogamp.opengl.util.glsl.fixedfunc
- com.jogamp.nativewindow.impl -> jogamp.nativewindow
- com.jogamp.newt.impl -> jogamp.newt
This sorts implementation details from the top level, ie skipping the public 'com',
allowing a better seperation of public classes and implementation details
and also reduces strings.
This approach of public/private seperation is also used in the OpenJDK.
|