summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* glarea: Ensure that the viewport is correctly setwip/gdk-glEmmanuele Bassi2014-08-181-1/+4
| | | | | | Call gdk_gl_context_update() once we create the GdkWindow inside the ::realize implementation of GtkGLArea, to ensure that the GL viewport is updated with the size of the GDK window.
* gdk/x11: Trap glXDestroyWindow()Emmanuele Bassi2014-08-181-1/+6
|
* glarea: Temporarily disable double-bufferingEmmanuele Bassi2014-08-181-0/+15
| | | | | | | | | | | Double-buffering inside GDK breaks the GL drawing model; GL expects to handle the output surface in its own way, so the double buffering done by GTK produces flickering and bad frames. We need to teach to GDK to ignore windows with native surfaces associated with a GdkGLContext, while still allowing the ability to draw with Cairo on a valid surface, but that requires some serious rework of the drawing code.
* demos: Add GtkGLArea to gtk-demoEmmanuele Bassi2014-08-183-0/+232
|
* gl: Drop the async viewport updateEmmanuele Bassi2014-08-154-83/+48
| | | | | | | It is not the cause of the flickering, and after checking with the current implementation of GL widgets like GtkClutterEmbed, it's not necessary to update the viewport in response to a ConfigureNotify for child windows.
* glarea: Clean up the ::realize implementationEmmanuele Bassi2014-08-151-5/+4
|
* gdk/x11: Plug a leak in create_gl_context()Emmanuele Bassi2014-08-151-0/+2
| | | | The valid GdkGLPixelFormat is owned by the GdkGLContext using it.
* tests/glarea: Make the UI a bit more complexEmmanuele Bassi2014-08-151-9/+134
| | | | Add sliders to control rotation angles on all three axis.
* gdk: Add missing declaration in GdkGLPixelFormatEmmanuele Bassi2014-08-151-0/+2
|
* glarea: Set app-paintableEmmanuele Bassi2014-08-141-2/+3
| | | | | The GL viewport is responsible for painting everything, including the backgound.
* gdk: Document pixel format gettersEmmanuele Bassi2014-08-141-0/+102
| | | | And add the implementation of get_aux_buffers().
* gdk: Add GdkGLPixelFormat:stereoEmmanuele Bassi2014-08-143-0/+34
| | | | Missing pixel format attribute for stereoscopic buffers.
* gdk/x11: Respect GdkGLPixelFormat:accum-sizeEmmanuele Bassi2014-08-141-2/+22
| | | | We are currently ignoring it.
* gl: Rework pixel format validationEmmanuele Bassi2014-08-148-53/+187
| | | | | | | | | | | | | | Instead of modifying the pixel format in place, we allow separating the pixel format from the effective pixel format we found. This means that caller code can keep a reference to the pixel format it creates, and re-use it to create new contexts on different displays, while the GL context can keep a reference to a valid pixel format to let the use query it. This allows GtkGLArea to keep its own user-supplied pixel format and reuse it without adding additional constraints as a result of a validation on a specific GdkDisplay.
* gdk: Add getters for GdkGLPixelFormat propertiesEmmanuele Bassi2014-08-143-2/+75
|
* gdk/x11: Adjust the pixel format's color sizeEmmanuele Bassi2014-08-121-2/+2
| | | | The color size is the minimum value between all the color buffers.
* gdk/x11: Plug a leakEmmanuele Bassi2014-08-121-0/+2
| | | | | XVisualInfo objects returned by glXGetVisualFromFBConfig() need to be freed.
* docs: Add GtkGLArea to the API referenceEmmanuele Bassi2014-08-122-0/+20
|
* docs: Add Gdk OpenGL API to the referenceEmmanuele Bassi2014-08-123-0/+47
|
* gdk: Remove unused functionEmmanuele Bassi2014-08-121-2/+0
| | | | | The clear_window() function is replaced by the set_window() function called with a NULL window.
* gtk: Document GtkGLAreaEmmanuele Bassi2014-08-122-10/+195
|
* gdk: Add licensing notes for GdkGL*Emmanuele Bassi2014-08-124-0/+80
|
* docs: Add some more documentation to GdkGLContextEmmanuele Bassi2014-08-121-1/+29
|
* gdk/x11: Add API to query the GLX versionEmmanuele Bassi2014-08-122-0/+38
|
* glarea: Unconditionally call gdk_gl_context_update()Emmanuele Bassi2014-08-121-8/+1
| | | | There's no need to check for different sizes.
* tests/glarea: Remove explcit glFlush()Emmanuele Bassi2014-08-121-2/+0
| | | | It's really not needed.
* gdk: Rework the GL context updateEmmanuele Bassi2014-08-124-18/+79
| | | | | | | | Ensure that gdk_gl_context_update() schedules an update of the viewport, and then perform the actual update when the backend says it should. This makes the code a bit more readable, and we can keep asking the user to call gdk_gl_context_update() after gdk_window_move_resize() without having to care about asynchronous updates.
* gdk: Add missing GDK_DEBUG tokenEmmanuele Bassi2014-08-121-1/+2
|
* tests/glarea: Add a buttonEmmanuele Bassi2014-08-121-2/+15
| | | | Make the test a bit more friendly.
* x11: Update GL viewport on ConfigureNotifyEmmanuele Bassi2014-08-121-4/+20
| | | | | | | | On X11, by virtue of the asynchronous nature of the protocol, we have to wait until the ConfigureNotify event to resize the GL viewport. If the GdkWindow is a top-level one, then we'll get a GDK_CONFIGURE event, but if we're using a GDK_WINDOW_CHILD the event will be dropped on the floor.
* x11: Add missing initializationEmmanuele Bassi2014-08-121-0/+1
|
* x11: Update pixel format after validationEmmanuele Bassi2014-08-121-1/+33
| | | | | The GdkGLPixelFormat after validation contains the values of the attributes that were found.
* x11: Fix conversion of pixel format to GL attributesEmmanuele Bassi2014-08-121-6/+4
| | | | | | | The color-size pixel format property is the size of each color buffer channel. We also need to set a default for the samples per sample buffer.
* Improve documentation of GdkGLContextEmmanuele Bassi2014-08-121-9/+20
|
* gl: Add a back pointer from the window to the contextEmmanuele Bassi2014-08-122-2/+33
| | | | | This way we can check if a GdkWindow has a GdkGLContext associated to it.
* Improve documentation of GdkGLPixelFormatEmmanuele Bassi2014-08-121-9/+171
|
* gtk: Add a GL drawing widgetEmmanuele Bassi2014-08-127-0/+625
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=119189
* gdk: Make GdkGLPixelFormat less smartEmmanuele Bassi2014-08-1211-209/+173
| | | | | | | | We use GdkGLPixelFormat only as a storage for GL configuration options. The validation is only made when creating a GdkGLContext. Validation for feature discovery and fallback code paths can be done directly using gdk_display_validate_gl_pixel_format() instead.
* Implement GdkGLContext and GdkGLPixelFormatEmmanuele Bassi2014-08-1220-2/+2132
| | | | | | | | | | | GdkGLPixelFormat is an ancillary class to specify pixel formats, buffer types, and buffer sizes for GL context. GdkGLContext is the wrapper around platform-specific GL context API. This commit adds the base classes, and an implementation on X11. https://bugzilla.gnome.org/show_bug.cgi?id=119189
* build: Require libepoxyEmmanuele Bassi2014-08-121-1/+2
| | | | | | | | | | | | | | | | If we want to use OpenGL in GDK then we have two choices; either: - find the GL headers on each platform - do extension discovery - implement all the crazy dlopen()/dlsym() dispatch tables *or* use libepoxy, which shields us from all this madness and provides a decent layer for GL clients to use, without creating its own namespace. Epoxy is also used by other projects, like Xorg and piglit, and it's portable to all the platforms GDK cares about. https://bugzilla.gnome.org/show_bug.cgi?id=119189
* widget-factory: Add a reset button to the notificationDebarshi Ray2014-08-112-1/+19
| | | | | | | | Change the initial value to something that is not a multiple of 3, so that dismissing the notification on reset makes sense. Let's use 50 because that is already being used elsewhere. https://bugzilla.gnome.org/show_bug.cgi?id=734614
* widget-factory: Turn off focus-on-click for notification close buttonDebarshi Ray2014-08-111-0/+1
| | | | | | | ... because that is what most applications are doing. So lets do the same thing for the sake of consistency and setting a good example. https://bugzilla.gnome.org/show_bug.cgi?id=734614
* Reconstruct a missing fileMatthias Clasen2014-08-112-1/+130
| | | | | Sadly I had forgotten to add selectionmode.ui to git. Here is a reconstructed version that seems to work.
* treeview: Check the selected node active flag before maybe starting rubberbandCarlos Garnacho2014-08-111-0/+5
| | | | | | | | | This check used to be present in the pre-gestures code, but was unintentionally removed when splitting code into drag/multiclick gestures. The policy used to be that if clicking happened on an already selected node, DnD would happen instead of rubberband selection, so this behavior is resuscitated. https://bugzilla.gnome.org/show_bug.cgi?id=734143
* Bump versionMatthias Clasen2014-08-101-1/+1
|
* 3.13.63.13.6Matthias Clasen2014-08-101-0/+2
|
* Fix reftests for builddir != srcdirMatthias Clasen2014-08-103-2/+6
| | | | | | Make gtk-reftest consult the REFTEST_MODULE_DIR environment variable to find out where to look for modules, and fix the libtool hack to construct the .libs subdirectory correctly.
* Update DISTCHECK_CONFIGURE_ARGSMatthias Clasen2014-08-101-5/+5
| | | | | The --disable-rebuilds option does not exist anymore, so remove it. At the same time, add --enable-installed-tests.
* Fix animation-direction reftestMatthias Clasen2014-08-102-0/+2
| | | | | | This was another victim of clipping changes - the labels were overdrawing each other, leading to test failure. Prevent this by separating the grid columns.
* wayland: Remove overly complex cursor cacheJasper St. Pierre2014-08-104-65/+19
|