summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Added Occitan translationcogl-1.8Cédric Valmary2015-05-191-0/+37
|
* Updated Danish translationKenneth Nielsen2013-10-071-0/+36
|
* pipeline: Use cogl_depth_state_init to init default depth stateNeil Roberts2012-04-032-7/+2
| | | | | | | | | | | | | | The previous code to initialise the depth state on the default pipeline wasn't initialising the magic number. If you later tried to retrieve the depth state using cogl_pipeline_get_depth_state you would end up with an invalid depth state struct and you would just get warnings if you tried to use it for anything. This patch just replaces the initialisation with a call to cogl_depth_state_init because it uses the same values anyway. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit be9d5b34c66ac81656e37779eb64891a062f90af)
* Drive by leak fix when code spelunkingRay Strode2012-03-161-0/+1
| | | | | | | | | | | | _cogl_shader_compile_real spews a warning when shader compilation fails if COGL_GL_DEBUG is defined. This warning is never freed. https://bugzilla.gnome.org/show_bug.cgi?id=672243 Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit dc00c2724998c422dcd597b87f222553e67f3801)
* Fix the 1.0 wrapper for cogl_path_curve_toNeil Roberts2012-03-151-1/+1
| | | | | | | | | | | | | The 1.0 wrapper for cogl_path_curve_to was using the wrong value for y_1 so it wouldn't work. The patch was written by Dénes Almási. https://bugzilla.gnome.org/show_bug.cgi?id=672174 Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit c8f8dbec7e2b36e350b4e12368a060eed39333da)
* texture: Handle premult conversions when getting texture dataNeil Roberts2012-02-231-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cogl_texture_get_data uses find_best_gl_get_data_format from the texture driver which returns the closest format to use for retrieving pixel data given an intended format. However this function doesn't know about the texture we are reading data from so it doesn't know that the data we will actually receive will have the same premult status as the texture's format. With the GL driver, this function ends up returning exactly the same format as passed in which means it will never do a premult conversion. Under GLES it always returns COGL_PIXEL_FORMAT_RGBA_8888 so it will always make the data unpremult even if the final requested format is premultiplied. This patch fixes it so that it copies the premult status of the closest_format from the format of the underlying texture. That way it will later convert or not depending on the requested target format. Note this patch breaks test-sub-texture with the GL driver because that is incorrectly trying to read the texture data back as RGBA_8888 even though it depends on it not doing a premult conversion. The test was already broken with GLES2 and remains broken. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 39c6bf59cbb571538acbda51714375f0d65098b9) Conflicts: cogl/cogl-texture.c
* [l10n]Added Catalan (Valencian) translationCarles Ferrando2012-02-181-0/+35
|
* When internally using an FBO, check for allocation errorsNeil Roberts2012-02-072-11/+43
| | | | | | | | | | | | | | | | | Both the cogl_texture_get_data and _cogl_blit_begin implementations will internally try to create an FBO for a texture and have fallbacks if the FBO fails. However neither of them were catching errors when allocating the framebuffer so the fallback wouldn't work properly. This patch just adds an explicit call to cogl_framebuffer_allocate for these uses and causes it to use the next fallback if it fails. Based on a patch by Adel Gadllah. https://bugzilla.gnome.org/show_bug.cgi?id=669368 Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit ec1bb4ce39ea0103fa0d1d408ca325922fdb7131)
* texture: Flush the dependent journals on get_dataNeil Roberts2012-01-311-0/+5
| | | | | | | | | | | When calling cogl_texture_get_data we need to ensure that any framebuffers rendering to the texture have flushed their journals. https://bugzilla.gnome.org/show_bug.cgi?id=668913 Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 43bc0a4b0de72743c4eedd3cd6175c8b8c6cc658)
* docs: Add list of api introduced in 1.8 versionJavier Jardón2012-01-131-0/+5
|
* Don't take a reference to the last used onscreen framebufferNeil Roberts2011-11-142-16/+11
| | | | | | | | | | | | | | | | Cogl keeps a pointer to the last used onscreen framebuffer from the context to implement the deprecated cogl_set_draw_buffer function which can take COGL_WINDOW_BUFFER as the target to use the last onscreen buffer. Previously this would also take a reference to that pointer. However that was causing a circular reference between the framebuffer and the context which makes it impossible to clean up resources properly when onscreen buffers are used. This patch instead changes it to just store the pointer and then clear the pointer during _cogl_onscreen_free as a kind of cheap weak reference. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry-pick from commit 39ca3e51dfaa652ae4a0d936fff32a5edaca6c5f)
* cogl-context: Destroy texture units later onNeil Roberts2011-11-041-2/+2
| | | | | | | | | | | | This patch moves the call to _cogl_destroy_texture_units() from _cogl_context_free() to later on. When destroying a GL texture the texture units are checked. This would end up accessing invalid memory so we need to try to destroy the texture units only after everything that might be referencing a texture has been destroyed. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 1566941c2fe67fa7d95f489aeede1d0801427614)
* cogl-program: Don't ignore the transpose property of matrix uniformsNeil Roberts2011-11-031-0/+1
| | | | | | | | | When setting a matrix uniform value the transpose property was getting lost and left uninitialized. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit c6373246631055d4bb3fccec73d5fe8fa2101f5e)
* Use the same number for n_tex_coord_attribs in all linked shadersNeil Roberts2011-11-027-50/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On GLES2, we need to specify an array size for the texture coord varying array. Previously this size would be decided in one of the following ways: - For generated vertex shaders it is always the number of layers in the pipeline. - For generated fragment shaders it is the highest sampled texture unit in the pipeline or the number of attributes supplied by the primitive, whichever is higher. - For user shaders it is usually the number of attributes supplied by the primitive. However, if the application tries to compile the shader and query the result before using it, it will always be at least 4. These shaders can quite easily end up with different values for the declaration which makes it fail to link. This patch changes it so that all of the shaders are generated with the maximum of the number of texture attributes supplied by the primitive and the number of layers in the pipeline. If this value changes then the shaders are regenerated, including user shaders. That way all of the shaders will always have the same value. https://bugzilla.gnome.org/show_bug.cgi?id=662184 Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 00f0a66ec949a641db744f56230c2bcfc98c1883)
* po/te.po: Unfuzzy the header stringEmmanuele Bassi2011-10-241-1/+0
| | | | | | While this will emit a warning on systems using the GNU libc, on other platforms (especially MingW), it will lead to a crash because of msgfmt doesn't check for NULL.
* pipeline: Reset last_used_for_pipeline when the pipeline is destroyedNeil Roberts2011-10-242-10/+26
| | | | | | | | | | | | | | | | | | | | | | | | | Both the GLSL and the ARBfp pipeline backends were using a variable called last_used_for_pipeline to keep track of the last pipeline that the shader or program state was used for. If this address is the same as last time when the pipeline state is flushed then Cogl will only flush the uniforms that have been modified, otherwise it will flush all of them. The problem with this is that there was nothing to keep that address alive so it could be destroyed and reused for a different pipeline by the time the shader state is reused. This is quite likely to happen in an application using legacy state because in that case the shader state will always be used with a one-shot pipeline that will likely be recycled in the next frame. There is already a destroy callback to unref the shader state when the pipeline is destroyed so this patch just makes that callback also clear the last_used_for_pipeline pointer if it matches the pipeline being destroyed. https://bugzilla.gnome.org/show_bug.cgi?id=662542 Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 49e733fcdcb12978ae165c6352e2c0acb6bc6757)
* Newly added Telugu translationskrishnababu k2011-10-201-0/+34
|
* cogl-winsys-egl: Use the abstraction to update the window sizeNeil Roberts2011-10-181-3/+3
| | | | | | | | | | | | Previously the EGL backend was directly prodding the width/height members of the framebuffer structure when a configure notify event is received. However this doesn't set the dirty flag for the viewport so Cogl will continue using the wrong viewport y offset. The GLX backend is already using an abstraction for updating the size which does set the flag. This patch just makes the EGL backend also use that abstraction. (cherry picked from commit 1d67085e8a523891f72bb3c5d2a5275f541555ca)
* Add the Cogl3D mailing list to the release message recipientsNeil Roberts2011-10-171-1/+1
| | | | | | | | | This just adds the new cogl mailing list to the template release message from make release-message Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 8052e37c70d55f5ded0fd9d3e3dac3efb7cd1932)
* Post-release version bump to 1.8.3Neil Roberts2011-10-171-2/+2
|
* Release 1.8.2 (release)1.8.2Neil Roberts2011-10-171-3/+3
|
* Updates NEWS for the 1.8.2 releaseNeil Roberts2011-10-171-1/+30
|
* doc/RELEASING: Add a note about testing windows compilationNeil Roberts2011-10-171-0/+6
| | | | | | | | | Now that we have reasonably good Windows support, we'd like to make sure each release still compiles there. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 8c9c01a6f4bba0174751973bec599359f92eace9)
* mingw-fetch-dependencies: Download config.guess and explicitly run itNeil Roberts2011-10-171-1/+7
| | | | | | | | | | | | Previously the instructions were telling the developer to run ./build/config.guess to get the build name to pass to configure. However that file only exists after running automake so it's a bit awkward. This patch makes it download config.guess from the gitweb for automake and just explicitly run it. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit dfb7c765672091fce1f4297ad864c38d2cba3e53)
* mingw-fetch-dependencies.sh: Fix a mention of ClutterNeil Roberts2011-10-171-1/+1
| | | | | | | | | The instructions mentioned the Clutter source tree instead of the Cogl source tree. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit a08c1978cb5b70f39064e1d516e5ff5059184190)
* mingw-fetch-dependencies.sh: Don't pass -c to wgetNeil Roberts2011-10-171-2/+7
| | | | | | | | | | | | | | The -c option for wget and -C - option to curl are used to make it continue the download if the file already exists. The idea was that it wouldn't waste time downloading the files again if the file already exists. However this causes problems if the remote file gets larger because the download will continue from the size of the old file so it will get corrupt. Instead let's just explicitly check if the file already exists and avoid calling wget or curl altogether. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit c2721664aac000588e0a20b0bb1f8e896b18eddc)
* build: removes unused variable i to avoid compiler warningRobert Bragg2011-10-171-2/+0
| | | | | | Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit 8325ca00b8b04f65ab833714cfa2b43094676cbc)
* arbfp: assume GL_TEXTURE_2D target for NULL textureRobert Bragg2011-10-171-2/+8
| | | | | | | | | | | | During arbfp codegen we weren't checking for NULL textures and so we would crash when trying to query a NULL texture's GL texture target. Since NULL texture targets result in ctx->default_gl_texture_2d_tex being bound we can assume that a NULL texture corresponds to a GL_TEXTURE_2D target. Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit dd5208b0ba248990e92b71f6c420757eb06c4b9c)
* x11-tfp: don't call winsys x11_damage_notify without winsysRobert Bragg2011-10-171-8/+14
| | | | | | | | | | | | | | If we failed to create a native texture from pixmap via EGL or GLX then we shouldn't call the winsys's texture_pixmap_x11_damage_notify function. By doing the validation in cogl-texture-pixmap-x11.c the winsys code can continue to assume that it doesn't need to verify there is a valid tex_pixmap->winsys pointer. Thanks to Damien Leone <dleone@nvidia.com> for catching this issue. https://bugzilla.gnome.org/show_bug.cgi?id=660184 (cherry picked from commit 1f61868fed78457c0da487d2a270804fb70dce8f)
* Added Korean translationSeong-ho, Cho2011-10-171-0/+34
|
* Updated Bulgarian translationIvaylo Valkov2011-10-151-4/+3
|
* Updated Bulgarian translationIvaylo Valkov2011-10-151-0/+35
|
* Added Hungarian translationGabor Kelemen2011-10-141-0/+36
|
* pipeline: don't leak the layers_cacheRobert Bragg2011-10-121-0/+2
| | | | | | | | | | | | | When freeing a pipeline in _cogl_pipeline_free we weren't making sure to free the layers_cache which was leading to a memory leak. Thanks to Sunjin Yang for finding this. https://bugzilla.gnome.org/show_bug.cgi?id=660986 Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit 762c730d493b633f7e369b8f264358152cc2fa8b)
* Clear the color bits of the textures in the color mask testLuca Bruno2011-09-291-0/+9
| | | | | | | | | | | Uninitialized textures could contain random bits. That makes the test fail as glColorMask is used to let only one of the RGB pass through. https://bugzilla.gnome.org/show_bug.cgi?id=660387 Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit e7cdb1b11b47c81fe9e9a4815a3a2085343e03e8)
* Post-release version bump to 1.8.1Robert Bragg2011-09-191-2/+2
|
* Release 1.8.0 (release)1.8.0Robert Bragg2011-09-191-5/+5
|
* Updates NEWS for the 1.8.0 releaseRobert Bragg2011-09-191-5/+59
|
* mingw: don't fetch mesa_wgl.h + update summary blurbRobert Bragg2011-09-191-3/+2
| | | | | | | | | | | | mesa_wgl.h can no longer be fetched from upstream and since it's no longer used anyway we don't fetch this any more. This also updates the blurb printed after fetching dependencies to show how to run ./configure so we pass --enable-wgl not --enable-stub-winsys and to also pass the -I path for the cogl-cross/include directory which has the latest gl.h we fetched so the build doesn't try and use the headers shipped with the mingw toolchain which may be out-of-date. Reviewed-by: Neil Roberts <neil@linux.intel.com>
* Added Basque languageInaki Larranaga Murgoitio2011-09-191-0/+36
|
* README: s/draw pretty pictures/render/Robert Bragg2011-09-191-6/+6
| | | | | This tweaks the overview of Cogl to use more technical terminology instead of saying Cogl is used to "draw pretty pictures".
* doc/RELEASING: note that the conformance tests should be runRobert Bragg2011-09-191-1/+5
| | | | | This documents that `make check` should be run as part of the release process.
* Port the backface culling testNeil Roberts2011-09-193-101/+70
| | | | | | | This ports the backface culling conformance test to work without Clutter. Reviewed-by: Robert Bragg <robert@linux.intel.com>
* test-utils: Use a power-of-two size for the FBONeil Roberts2011-09-191-2/+2
| | | | | | | | | When testing with COGL_DEBUG=disable-npot-textures all of the tests would fail because the testing infrastructure itself ends up creating a sliced texture and then trying to use it as a render target. This just modifies test-utils to use 512x512 for the size of the texture. Reviewed-by: Robert Bragg <robert@linux.intel.com>
* cogl-primitives: Don't warn if using sliced textures without multi-texNeil Roberts2011-09-191-12/+16
| | | | | | | | | | | | cogl_rectangle has some validation code to check whether the first layer has a sliced texture. If so it will abandon the rest of the layers and print a warning. However it was even doing this pruning and displaying the warning if there is only one layer. This patch just makes it check whether the pipeline actually has more than one layer before pruning or displaying the warning but it will still fallback to the multiple quads path. Reviewed-by: Robert Bragg <robert@linux.intel.com>
* Make backface culling be part of the legacy stateNeil Roberts2011-09-1912-103/+258
| | | | | | | | | | | | | | | | | | | | This adds an internal function to set the backface culling state on a pipeline. This includes properties to set the culling mode (front, back or both) and also to set which face is considered the front (COGL_WINDING_CLOCKWISE or COGL_WINDING_COUNTER_CLOCKWISE). The actual front face flushed to GL depends on whether we are rendering to an offscreen buffer or not. This means that when changing between on- and off- screen framebuffers it now checks whether the last flushed pipeline has backface culling enabled and forces a reflush of the cull face state if so. The backface culling is now set on a pipeline as part of the legacy state. This is important because some code in Cogl assumes it can flush a temporary pipeline to revert to a known state, but previously this wouldn't disable backface culling so things such as flushing the clip stack could get confused. Reviewed-by: Robert Bragg <robert@linux.intel.com>
* cogl-framebuffer: Force flushing the color mask when changing fbsNeil Roberts2011-09-192-37/+64
| | | | | | | | | | | | | | | | | | | | | | | | When changing between two framebuffers that have different color masks it now forces the pipeline to flush the mask by setting current_pipeline_changes_since_flush. For this to work there needs to be a common bit of code that gets called when the framebuffers are changed that has access to both the old framebuffer and the new framebuffer. _cogl_set_framebuffers_real can't be used for this because when it is called from cogl_pop_framebuffer the stack entries have already changed so it can't know the old framebuffer. This patch adds a new function called notify_buffers_changed which should get called whenever the buffers are changed and it explicitly gets passed pointers to the old and new buffers. cogl_pop_framebuffer now calls this instead of trying to use _cogl_set_framebuffers_real to force a flush. This patch also fixes the ctx->window_buffer pointer. Previously this was implemented by searching in the framebuffer stack for an onscreen framebuffer whenever the current buffers are changed. However it does this after the stack has already changed so it won't usually find the right buffer. Reviewed-by: Robert Bragg <robert@linux.intel.com>
* Add a conformance test for setting the color mask on a framebufferNeil Roberts2011-09-193-0/+121
| | | | | | | | There is a currently a bug where pushing a buffer with a different color mask will not cause the color mask to be flushed. This adds a test to demonstrate that. Reviewed-by: Robert Bragg <robert@linux.intel.com>
* pipeline-arbfp: Check for fog on the pipeline not the legacy stateNeil Roberts2011-09-193-1/+16
| | | | | | | | | | | | | The ARBfp backend can't handle fog so it tries to check for when it's enabled and bails out. However it was checking using the global legacy state value on the CoglContext but this doesn't necessarily reflect the state that will actually be used by the pipeline because Cogl may have internally pushed a different pipeline. This patch adds an internal _cogl_pipeline_get_fog_enabled which the ARBfp backend now uses. Reviewed-by: Robert Bragg <robert@linux.intel.com>
* Add internal _cogl_push_source to optionally disable legacy stateNeil Roberts2011-09-1910-34/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some code in Cogl such as when flushing a stencil clip assumes that it can push a temporary simple pipeline to reset to a known state for internal drawing operations. However this breaks down if the application has set any legacy state because that is set globally so it will also get applied to the internal pipeline. _cogl_draw_attributes already had an internal flag to disable applying the legacy state but I think this is quite awkward to use because not all places that push a pipeline draw the attribute buffers directly so it is difficult to pass the flag down through the layers. Conceptually the legacy state is meant to be like a layer on top of the purely pipeline-based state API so I think ideally we should have an internal function to push the source without the applying the legacy state. The legacy state can't be applied as the pipeline is pushed because the global state can be modified even after it is pushed. This patch adds a _cogl_push_source() function which takes an extra boolean flag to mark whether to enable the legacy state. The value of this flag is stored alongside the pipeline in the pipeline stack. Another new internal function called _cogl_get_enable_legacy_state queries whether the top entry in the pipeline stack has legacy state enabled. cogl-primitives and the vertex array drawing code now use this to determine whether to apply the legacy state when drawing. The COGL_DRAW_SKIP_LEGACY_STATE flag is now removed. Reviewed-by: Robert Bragg <robert@linux.intel.com>