diff options
author | Ben Clayton <bclayton@google.com> | 2014-08-18 17:25:34 +0100 |
---|---|---|
committer | Ben Clayton <bclayton@google.com> | 2014-08-20 15:21:44 +0000 |
commit | 16d7b6a8bb6f22ddd9252c6c0aefa84a53b65d53 (patch) | |
tree | e9cf15511cee885b5ace5adc8ad435e38c152599 /opengl/libs/GLES_trace/src/gltrace_context.cpp | |
parent | 62205596b9848d9d7d9de90aa0f5682d6ce17ea3 (diff) | |
download | frameworks_native-16d7b6a8bb6f22ddd9252c6c0aefa84a53b65d53.zip frameworks_native-16d7b6a8bb6f22ddd9252c6c0aefa84a53b65d53.tar.gz frameworks_native-16d7b6a8bb6f22ddd9252c6c0aefa84a53b65d53.tar.bz2 |
Don't try to capture the pointer when using PBOs for texture APIs
If a PBO is bound, then the pointer argument is a relative offset from
the start of the PBO, not an absolute address.
Fixes b/17063439
Change-Id: I39629ce6c9bb3cb6bac5c9b0311287628306ddd4
(cherry picked from commit 0ad707f2f3d714af7d983d68330ed51dace815f5)
Diffstat (limited to 'opengl/libs/GLES_trace/src/gltrace_context.cpp')
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_context.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/opengl/libs/GLES_trace/src/gltrace_context.cpp b/opengl/libs/GLES_trace/src/gltrace_context.cpp index 0323e8f..d1b3586 100644 --- a/opengl/libs/GLES_trace/src/gltrace_context.cpp +++ b/opengl/libs/GLES_trace/src/gltrace_context.cpp @@ -133,6 +133,9 @@ GLTraceContext::GLTraceContext(int id, int version, GLTraceState *state, BufferedOutputStream *stream) : mId(id), mVersion(version), + mVersionMajor(0), + mVersionMinor(0), + mVersionParsed(false), mState(state), mBufferedOutputStream(stream), mElementArrayBuffers(DefaultKeyedVector<GLuint, ElementArrayBuffer*>(NULL)) @@ -149,10 +152,40 @@ int GLTraceContext::getVersion() { return mVersion; } +int GLTraceContext::getVersionMajor() { + if (!mVersionParsed) { + parseGlesVersion(); + mVersionParsed = true; + } + return mVersionMajor; +} + +int GLTraceContext::getVersionMinor() { + if (!mVersionParsed) { + parseGlesVersion(); + mVersionParsed = true; + } + return mVersionMinor; +} + GLTraceState *GLTraceContext::getGlobalTraceState() { return mState; } +void GLTraceContext::parseGlesVersion() { + const char* str = (const char*)hooks->gl.glGetString(GL_VERSION); + int major, minor; + if (sscanf(str, "OpenGL ES-CM %d.%d", &major, &minor) != 2) { + if (sscanf(str, "OpenGL ES %d.%d", &major, &minor) != 2) { + ALOGW("Unable to parse GL_VERSION string: \"%s\"", str); + major = 1; + minor = 0; + } + } + mVersionMajor = major; + mVersionMinor = minor; +} + void GLTraceContext::resizeFBMemory(unsigned minSize) { if (fbcontentsSize >= minSize) { return; |