| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
operation, throw InternalError if failing
|
|\
| |
| | |
Fix #875 - ES version should be strictly validated
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When initializing the context in GLContextImpl.setGLFuncAvailability
ES devices must be validated by strictly matching the major version,
otherwise on ES3 devices we were mixing ES1 implementation with ES3
contexts, ultimately crashing in a safeguard.
Signed-off-by: Brice Figureau <[email protected]>
|
| |
| |
| |
| | |
to lifecycle considerations ; GearsES2: Add glFinish() after init().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
stability constraints' ; Fixing Test cases: Enable all, GearsObject*: Check VBO
- GLSharedContextSetter API Doc: No 'Driver stability constraints'
- No driver issues ..
- Use 'Lifecycle Considerations' to describe usage issues ..
- Fixing Test cases: Enable all, GearsObject*: Check VBO
- GearsObject* needs to check whether VBO is 'still alive'
if sharing is enabled.
- Enable all unit tests.
|
| |
| |
| |
| |
| |
| | |
instance of GLArrayHandler of same type; Simplify GLArrayHandler inheritance.
Refines commit 9f2a9df0a4b7093925c8854b37fba053469a4b35
|
| |
| |
| |
| | |
field usage; GLDrawableImpl: Make read-only fields final.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refine GearsObject* GLArrayDataServer copying; GearsES*: Init VBO eagerly
Add copy-ctor to GLArrayData* w/ sliced Buffer to allow general sharing of VBO via these high-level types.
Refine GearsObject* GLArrayDataServer copying (commit bcfaa149b9803ce33c5a356cbcb45f7dfd3e4361):
Utilize new GLArrayData* copy-ctor.
GearsES*: Init VBO eagerly, allowing VBO usage after init(..).
|
| |
| |
| |
| |
| |
| |
| | |
convenience
Added:
GLAutoDrawable createDummyAutoDrawable(AbstractGraphicsDevice deviceReq, boolean createNewDevice, GLProfile glp)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
downstream.getGL*() [TraceGL* / DebugGL*] ; Simplify GLContextImpl's set Debug/Trace Pipeline
Regression of commit 0002fccdcd6383874b2813dc6bbe3e33f5f00924:
"Trace/Debug shall utilize downstream identification for isGL*() and getGL*() methods."
Using the downstream identification commit is right for the isGL*() case,
however, getGL*() returned the downstream object which makes the caller loosing the pipeline!
Instead, we shall produce !GEN_GL_IDENTITY_BY_ASSIGNABLE_CLASS:
"if( isGL<type>() ) { return this; }
throw new GLException("Not a <type> implementation");"
or for GEN_GL_IDENTITY_BY_ASSIGNABLE_CLASS:
"return this;"
|
| |
| |
| |
| | |
on GL2 ctx on OSX ; GLWindow #2 shall also use sharedDrawable; Cleanup ..
|
| |
| |
| |
| | |
glViewport(..) and dump it (Add stack trace if DEBUG)
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
order) ; Fix unit tests (Shared Gears, wait for created context and destruction order)
- Add note about driver stability (destruction order)
- See GLSharedContextSetter: Don't destroy master context before slaves!
- Fix spec-overview.html#SHARED links, add link to GLSharedContextSetter in SHARED subsection.
- Fix unit tests (Shared Gears, wait for created context and destruction order)
- The GearsObject sharing was completly bogus!
It simply used the _same_ GLArrayDataServer instance for sharing,
but it should use a _copy_ of the shared GLArrayDataServer while
only preserving the VBO object!
Fixed, while adding required methods to GLArrayDataServer.
- Waiting for the created GLContext of a GLAutoDrawable required us
to pass the latter _and_ check whether it's GLContext exists and is natively created.
- Accomodated the destruction order - see above!
|
| |
|
|
|
|
|
|
| |
local shared ctx fields.
Regression of 7f7a23dd0ddf106e6f0c69fc2a05ff92ac56200e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
; Fix GLContext memory contract (volatile)
(Unit test remarks see below)
- Add shared GLContext queries
- Refined GLContextShareSet:
- Use IdentityHashMap since GLContext's can only be identical w/ same reference (footprint, performance)
- Add API doc for clarification
- Add methods:
- ArrayList<GLContext> getCreatedShares(final GLContext context)
- ArrayList<GLContext> getDestroyedShares(final GLContext context)
- Use 'final' where possible
- Add GLContext methods:
- boolean isShared()
- List<GLContext> getCreatedShares()
- List<GLContext> getDestroyedShares()
- Add GLSharedContextSetter interface defining setting a shared GLContext
directly (GLContext) or via a GLAutoDrawable:
- setSharedContext(GLContext)
- setSharedAutoDrawable(GLAutoDrawable)
Both cause initialization/creation of GLAutoDrawable's drawable/context to be postponed,
if the shared GLContext is not yet created natively or
the shared GLAutoDrawable's GLContext does not yet exist.
Most of impl. resides in GLDrawableHelper
Implemented in:
- GLAutoDrawableBase, GLOffscreenAutoDrawable
- GLWindow
- AWT GLCanvas
TODO:
- GLJPanel
- SWT GLCanvas
- GLDrawableFactory:
- Add 'GLOffscreenAutoDrawable createOffscreenAutoDrawable(..)' variant w/o passing the
optional shared GLContext _and_ specifying lazy GLContext
creation. This allows to benefit from GLSharedContextSetter contract.
Lazy GLContext creation is performed at 2st display() call at the latest.
All JOGL code and unit tests use this new method now.
- Mark 'createOffscreenAutoDrawable(..)' w/ shared GLContext argument
and immediate GLContext creation deprecated - shall be removed in 2.2.0
- Make reference to GLContext and it's native handle volatile
Since we rely on the query 'GLContext.isCreated()' to properly allow GLAutoDrawable's to query whether
a shared GLContext is natively created (already), the handle must be volatile
since such query and the actual creation may operate on different threads.
+++++
- Add/Refine shared GLContext unit tests demonstrating diff. sharing methods.
All variants of using shared GLContext:
com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBO*
Most convenient way to share via setSharedAutoDrawable(GLAutoDrawable):
com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2[NEWT|AWT]3
AWT use w/ JTabbedPane using setSharedAutoDrawable(GLAutoDrawable):
com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextWithJTabbedPaneAWT
|
| |
|
|
|
|
| |
GLDrawable (Shared Context)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLContext:
- Proper API doc for Version* fields
- getStaticGLSLVersionNumber(): ES3 -> Version300
- hasGLSL(): Add ES3
ShaderCode:
- addDefaultShaderPrecision():
- ES2 default precision: Don't 'tune up' default precision for fragment shader, use 'mediump'
- Add ES3 default precision (equal to ES2 default precision)
- requiresDefaultPrecision(): Shall returns 'true' for ES3 as well!
|
|
|
|
| |
GLContextImpl.createContextARBVersions(..) erroneous upper bounds check.
|
|\ |
|
| |
| |
| |
| | |
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The indent was being reduced on glEnd/glEndList but was never being incremented.
The intent appeared to be to indent all statements between glBEgin/glEnd pairs to
show the nested context of those calls. Add the increment after printing the glBegin
trace statement.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Make the indentation consistent in each function wrapper.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This saves us a bit more code size as the String.format is now in the common
helper rather than in every GL wrapper function.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
Using a format String and arg list produces smaller class files for the Debug classes
as many of the format strings are identical and shared.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Build the caller string directly and don't wrap it in an extra constructor.
Update the indentation level for the newly added if-block from the previous commit.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- split the check for a GL error from the output of the error string
- only build the caller String when there is an error to report
- wrap String building in an if() block rather than using an early return as we
don't know the return type in the postDownstreamCallHook
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This adds the @Override to methods in the GL implementations (debug, trace, etc) for methods
implementing a GL Profile. It also adds @Override for the toString() method.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| | |
These were already here, enable them.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
commit:
d75835796900cac602f7e5789601ffba0a27efe2 (Graph: More std. functionality (equals, clone) / Better in-place transformation (cubic -> quadratic))
Added a clone method, but did not implement Cloneable, meaning Object.clone() will
always throw CloneNotSupportedException. This method never returns anythng but null.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
commit:
a4e3f241cfba55e407c68eba91ffcc4beb0758b5 (Analysis of glXMakeCurrent freeze on ATI fglrx 8.78.6; Misc ..)
Removed 'implements Clonable' from NamedDisplay, which means Object.clone() will
always throw CloneNotSupportedException. Kill clone().
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
as detected and mapped by GLContext ; Enhance glAvailabilityToString(..)
We shall not map profile == profile-impl, i.e. GL3 -> GL3,
but use GLContext.getAvailableGLProfileName(device, reqMajor, reqProfileBits).
The latter reflects the actual mapped context as detected.
glAvailabilityToString(..)
- Partition result in [Natives, Common and Mappings]
- Mappings dumps mapped keys to profiles, while excluding default.
Default is added at last.
- Add count.
|
| |
| |
| |
| | |
we do use the named device
|
| |
| |
| |
| | |
getAvailableGLProfile(device, ..) shall use GLProfile.get(device, ..)
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
make it sticky; Only alias profiles if HW-Accelerated!
Only alias profiles if HW-Accelerated!
GLContextImpl.mapGLVersions(..) shall not map a higher profile to a lower if it is a software renderer.
+++
GLContextImpl.mapGLVersions(..) attempts to trigger GLRendererQuirks.GL4NeedsGL3Request if OSX 10.9
by creating a GL3 core context first.
+++
GLContextImpl.setGLFunctionAvailability():
- On OSX 10.9: Detect GLRendererQuirks.GL4NeedsGL3Request and make it sticky (per device)
while 'withinGLVersionsMapping'
- Merge sticky quirks w/ local quirks
+++
TestGearsES2NEWT: Add cmdline '-gl2' to force GL2 profile.
|
| |
| |
| |
| | |
[kCGLOGLPVersion_GL4_Core, kCGLOGLPVersion_GL3_Core] for major==4 depending on sticky GLRendererQuirks.GL4NeedsGL3Request
|
| |
| |
| |
| |
| |
| | |
w/ xcode's xcrun) - Remove abs. include path.
#include </usr/include/machine/types.h> -> #include <machine/types.h>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
GLRendererQuirks: Quirk GL4NeedsGL3Request and 'sticky device quirks'
The 'sticky device quirks' are required to share quirks among devices
as collected while mapping the GL versions (audit).
Those are context independent and may only be detected for certain contexts.
They can be pushed/added to the context's quirks, but also queried at context
creation (after mapping) - before the local quirks are being created.
|
| |
| |
| |
| | |
CTX_IMPL_FP32_COMPAT_API: "FP32 compat-api" -> "FP32 compat"
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
DEBUG_CALAYER_POS_CRITICAL is explicitly set.
- DEBUG_CALAYER_POS_CRITICAL = nativewindow.debug.JAWT.OSXCALayerPos
Since AWT's location-on-screen query can cause an AWT deadlock,
which is the sole purpose of our custom lock-free impl,
don't enable it's DEBUG output w/ default DEBUG flags.
|
|/
|
|
| |
jogamp.opengl.egl.EGLGraphicsConfigurationFactory: Add missing 'else' in branch
|
|
|
|
| |
more stable (i.e. only 2 pointer pressed)
|
| |
|