Merge lp://qastaging/~linaro-graphics-wg/compiz-core/linaro-gles2 into lp://qastaging/compiz-core/0.9.8

Proposed by Alexandros Frantzis
Status: Superseded
Proposed branch: lp://qastaging/~linaro-graphics-wg/compiz-core/linaro-gles2
Merge into: lp://qastaging/compiz-core/0.9.8
Diff against target: 12066 lines (+4692/-4113) (has conflicts)
66 files modified
CMakeLists.txt (+12/-0)
cmake/CMakeLists.txt (+2/-0)
cmake/CompizCommon.cmake (+12/-0)
cmake/CompizPlugin.cmake (+14/-10)
cmake/FindOpenGLES2.cmake (+51/-0)
cmake/base.cmake (+3/-1)
cmake/plugin_extensions/CompizOpenGLFixups.cmake (+22/-0)
gtk/config.h.gtk.in (+0/-25)
gtk/window-decorator/actionmenu.c (+0/-133)
gtk/window-decorator/blurprops.c (+0/-89)
gtk/window-decorator/forcequit.c (+0/-201)
gtk/window-decorator/gdk.c (+0/-106)
gtk/window-decorator/style.c (+0/-66)
gtk/window-decorator/util.c (+0/-299)
plugins/annotate/src/annotate.cpp (+151/-77)
plugins/blur/CMakeLists.txt (+12/-12)
plugins/clone/src/clone.cpp (+0/-5)
plugins/compiztoolbox/src/compiztoolbox.cpp (+14/-28)
plugins/copytex/src/copytex.cpp (+9/-0)
plugins/cube/CMakeLists.txt (+1/-1)
plugins/cube/src/cube.cpp (+0/-4)
plugins/decor/src/decor.cpp (+35/-22)
plugins/decor/src/decor.h (+3/-3)
plugins/imgsvg/src/imgsvg.cpp (+12/-9)
plugins/imgsvg/src/imgsvg.h (+2/-1)
plugins/obs/src/obs.cpp (+9/-8)
plugins/obs/src/obs.h (+1/-1)
plugins/opengl/CMakeLists.txt (+9/-4)
plugins/opengl/compiz-opengl.pc.in (+2/-2)
plugins/opengl/include/opengl/fragment.h (+0/-125)
plugins/opengl/include/opengl/framebufferobject.h (+107/-0)
plugins/opengl/include/opengl/matrix.h (+2/-0)
plugins/opengl/include/opengl/opengl.h (+266/-72)
plugins/opengl/include/opengl/program.h (+75/-0)
plugins/opengl/include/opengl/programcache.h (+51/-0)
plugins/opengl/include/opengl/shadercache.h (+100/-0)
plugins/opengl/include/opengl/texture.h (+5/-0)
plugins/opengl/include/opengl/vector.h (+1/-1)
plugins/opengl/include/opengl/vertexbuffer.h (+109/-0)
plugins/opengl/opengl.xml.in (+1/-1)
plugins/opengl/src/fragment.cpp (+0/-1146)
plugins/opengl/src/framebufferobject.cpp (+191/-0)
plugins/opengl/src/matrix.cpp (+54/-0)
plugins/opengl/src/paint.cpp (+414/-422)
plugins/opengl/src/privatefragment.h (+0/-54)
plugins/opengl/src/privates.h (+36/-11)
plugins/opengl/src/privatetexture.h (+32/-0)
plugins/opengl/src/privatevertexbuffer.h (+138/-0)
plugins/opengl/src/program.cpp (+262/-0)
plugins/opengl/src/programcache.cpp (+175/-0)
plugins/opengl/src/screen.cpp (+558/-70)
plugins/opengl/src/shadercache.cpp (+246/-0)
plugins/opengl/src/texture.cpp (+136/-11)
plugins/opengl/src/vertexbuffer.cpp (+550/-0)
plugins/opengl/src/window.cpp (+69/-84)
plugins/resize/src/resize.cpp (+95/-39)
plugins/rotate/CMakeLists.txt (+1/-1)
plugins/scale/src/scale.cpp (+12/-24)
plugins/screenshot/src/screenshot.cpp (+52/-25)
plugins/switcher/src/switcher.cpp (+49/-48)
plugins/water/CMakeLists.txt (+1/-1)
plugins/water/src/shaders.h (+201/-0)
plugins/water/src/water.cpp (+265/-803)
plugins/water/src/water.h (+37/-67)
plugins/water/water.xml.in (+24/-0)
plugins/wobbly/CMakeLists.txt (+1/-1)
Text conflict in plugins/opengl/src/screen.cpp
To merge this branch: bzr merge lp://qastaging/~linaro-graphics-wg/compiz-core/linaro-gles2
Reviewer Review Type Date Requested Status
Compiz Maintainers Pending
Review via email: mp+102823@code.qastaging.launchpad.net

This proposal has been superseded by a proposal from 2012-05-14.

Description of the change

This branch contains the code to make compiz work on GLES. This includes several changes to the compiz API.

* GLVertexBuffer class added for managing vertices, normals, texture coordinates, and colors
* GLProgram class added for managing GLSL programs
* GLProgramCache class added for managing per-plugin GLSL programs efficiently, uses an LRU cache
  to avoid recompiling recently used GLSL programs all the time
* GLShaderCache class added for managing dynamically created shader source code.
* GLFragment class removed as fragment programs are no longer used (replaced with GLSL programs)
* EGL context setup added
* EglTexture class added to use EGL_image extension instead of GLX_EXT_texture_from_pixmap for GLES

Things left to do for a complete port:

  * port blur, wobbly, rotate, cube, and water plugins
    * wobbly, cube, and rotate should be fairly straightforward, water and blur need updated to
      use GLSL instead of fragment programs

To post a comment you must log in.
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Apart from a few (mostly simple) merge conflicts this builds with trunk. Unsurprisingly the unit tests pass (they don't touch the affected codepath).

Apart from a lack of the usual plugins the result runs.

Unmerged revisions

2922. By Alexandros Frantzis

Sync with lp:compiz-core.

2921. By Alexandros Frantzis

Sync with lp:compiz-core.

2920. By Alexandros Frantzis

opengl: For OpenGL ES 2.0 ensure that format equals internalFormat when uploading texture data.

In OpenGL ES 2.0 no format conversion is allowed, i.e., format must equal internalFormat.

2919. By Alexandros Frantzis

Fix compilation with desktop GL.

2918. By Alexandros Frantzis

opengl: Disable blending by default when drawing the screen.

Each operation/plugin should enable it (and reset it) as needed
(as most operations are currently doing).

2917. By Alexandros Frantzis

Sync with lp:compiz-core.

2916. By Alexandros Frantzis

opengl: Refactor shader infrastructure to use small, performant programs.

This commit replaces the single complicated shader with minimal,
performant shaders, tailored to specific use cases. The new GLShaderCache
object is used for creating and caching the shader data for specific uses
cases (GLShaderParameters).

This commit also adds automatic creation of suitable GL programs in
GLVertexBuffers (see ::setAutoProgram) that don't have a program
explicitly set.

2915. By Alexandros Frantzis

opengl: Ensure blending is enabled, when needed, when drawing window contents.

2914. By Alexandros Frantzis

Sync with lp:compiz-core.

2913. By Alexandros Frantzis

Sync with lp:compiz-core.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches