Commit Graph

66 Commits

Author SHA1 Message Date
Matthias Clasen
cc31235d2e Add a 3.16 index
We have new GDK api already.
2014-10-21 23:56:36 -04:00
Alexander Larsson
038aac6275 gdk: Add support for OpenGL
This adds the new type GdkGLContext that wraps an OpenGL context for a
particular native window. It also adds support for the gdk paint
machinery to use OpenGL to draw everything. As soon as anyone creates
a GL context for a native window we create a "paint context" for that
GdkWindow and switch to using GL for painting it.

This commit contains only an implementation for X11 (using GLX).

The way painting works is that all client gl contexts draw into
offscreen buffers rather than directly to the back buffer, and the
way something gets onto the window is by using gdk_cairo_draw_from_gl()
to draw part of that buffer onto the draw cairo context.

As a fallback (if we're doing redirected drawing or some effect like a
cairo_push_group()) we read back the gl buffer into memory and composite
using cairo. This means that GL rendering works in all cases, including
rendering to a PDF. However, this is not particularly fast.

In the *typical* case, where we're drawing directly to the window in
the regular paint loop we hit the fast path. The fast path uses opengl
to draw the buffer to the window back buffer, either by blitting or
texturing. Then we track the region that was drawn, and when the draw
ends we paint the normal cairo surface to the window (using
texture-from-pixmap in the X11 case, or texture from cairo image
otherwise) in the regions where there is no gl painted.

There are some complexities wrt layering of gl and cairo areas though:
* We track via gdk_window_mark_paint_from_clip() whenever gtk is
  painting over a region we previously rendered with opengl
  (flushed_region). This area (needs_blend_region) is blended
  rather than copied at the end of the frame.
* If we're drawing a gl texture with alpha we first copy the current
  cairo_surface inside the target region to the back buffer before
  we blend over it.

These two operations allow us full stacking of transparent gl and cairo
regions.
2014-10-13 10:43:31 -04:00
Matthias Clasen
83f9649c9c docs: Move GdkColor off into a deprecated section 2014-05-24 23:31:54 -04:00
Matthias Clasen
33207f4597 Add a 3.14 index for the GDK docs 2014-05-21 19:02:52 -04:00
Matthias Clasen
354c93bc70 Add an index for new gdk api 2013-11-09 00:01:11 -05:00
Matthias Clasen
ff049fad62 Add an index for 3.10 symbols in gdk docs 2013-05-27 15:17:25 -04:00
Jan Arne Petersen
40c5d37340 docs: Add wayland documentation to Gdk reference 2013-03-27 21:04:05 +01:00
Matthias Clasen
9294585cd6 Add index for new api additions
The index for 3.8 api additions was missing up to now.
2013-02-25 10:54:32 +01:00
Matthias Clasen
67635e9177 Include GdkFrameClock in the docs
Make GdkFrameClock and GdkFrameTimings show up in the docs.
A couple of minor doc fixes are also included.
2013-02-25 10:54:32 +01:00
Matthias Clasen
26680176ab Update links for gtk2 docs 2012-09-23 19:47:08 -04:00
Matthias Clasen
5f9b010b94 Fix gdk docs build
This took far too long: The actual problem turned out to
be an unclosed <SECTION> in gdk3-sections.txt.
2012-09-18 13:54:22 -04:00
Frédéric Péters
f730f519f8 Fix links to developer.gnome.org 2012-05-13 19:44:39 +02:00
Owen W. Taylor
0aa989ae76 GtkPlug: fix handling of key events for different layouts
GtkPlug directly handles X KeyPress/Release events, instead of using
translation in GDK (which expects XI2 events for XI2). When this
was done, the handling of the group was stubbed out and never replaced.

Export gdk_keymap_x11_group_for_state() and gdk_keymap_x11_is_modifier()
so we can fill out the fields correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=675167
2012-04-30 16:35:10 -04:00
Frédéric Péters
561ff67bbf docs: update links to point to developer.gnome.org
https://bugzilla.gnome.org/show_bug.cgi?id=672117
2012-03-19 09:38:09 +01:00
Matthias Clasen
c5c392ddf9 Add 'Since 3.4' indices to the docs 2011-10-02 10:22:13 -04:00
Matthias Clasen
8009a7f0b1 Add a 3.2 index to gdk docs 2011-08-29 13:16:14 -04:00
Colin Walters
63b415df92 docs: Link to all versions of both GTK3 and GTK2
Now that library supports both cleanly, fix the links so that
the user can go from the online doc to any version better.
2011-02-11 12:39:07 -05:00
Matthias Clasen
981cadb578 Make online references point to the right place 2011-02-09 16:54:19 -05:00
Matthias Clasen
13d249ae19 Change the title of the GDK docs to mention '3'
This is necessary in preparation for having 2.x and 3 docs
listed next to each other on library.gnome.org.
2011-02-09 16:44:19 -05:00
Matthias Clasen
1f4bb70bac Give the GDK docs some love
Reorganize some sections, drop the largely redundant multihead
section, add some more information about multiple backends.
2011-02-09 01:32:24 -05:00
Matthias Clasen
27ce9421d0 Fix up GDK docs 2010-12-25 00:02:39 -05:00
Benjamin Otte
ddb5e12e61 docs: Reinstate pixbufs section in GDK docs
It was accidentally removed in 0775b0a858
2010-12-09 23:56:25 +01:00
Benjamin Otte
3070d6e3d5 Revert "docs: Reinstate pixbufs section in GDK docs"
I committed my whole working tee instead of just one file. Ooops.
This reverts commit ded14b2562.
2010-12-09 23:55:33 +01:00
Benjamin Otte
ded14b2562 docs: Reinstate pixbufs section in GDK docs
It was accidentally removed in 0775b0a858
2010-12-09 11:14:21 +01:00
Benjamin Otte
218eea4378 gdk: Remove GdkDrawable
It's unused.
2010-12-02 20:21:04 +01:00
Carlos Garnacho
5a5f8081f0 Add GdkRGBA struct to supersede GdkColor
GdkRGBA is a boxed struct similar to GdkColor, with the difference
that it stores alpha information as well, and colors are stored in
[0..1] doubles, in the cairo spirit.

gdk_cairo_set_source_rgba() has been also added to allow easier handling
of this new type.
2010-10-22 20:14:56 +02:00
Matthias Clasen
9ff4f0819f Some GDK documentation fixes 2010-10-14 21:45:56 -04:00
Matthias Clasen
0775b0a858 Make the docs build 2010-09-26 15:11:34 +02:00
Benjamin Otte
6a48a042c7 API: remove GdkGC
XXX: Some traces in the win32 code are left. I suppose they'd best be
replaced using Cairo.
2010-08-10 21:02:29 +02:00
Benjamin Otte
14fe04ec89 API: remove GdkImage
It was unused and buggy.
2010-08-10 21:02:26 +02:00
Benjamin Otte
d18abf42b7 API: Get rid of GdkRGB 2010-08-10 21:02:26 +02:00
Matthias Clasen
9fbfbda8cc Remove indices for 2.x additions 2010-06-03 01:23:13 -04:00
Matthias Clasen
bd4609b140 Merge the xi2-for-master branch 2010-05-25 18:38:44 -04:00
Javier Jardón
0c6565e1d3 Fix typo in previous patch 2010-05-25 20:48:59 +02:00
Matthias Clasen
b5ae99bf19 Add indexes
Add an index for 2.22 api additions, and one for 3.0.
2010-05-25 12:21:13 -04:00
Matthias Clasen
60017d2676 Add 2.20 index for gdk docs 2010-02-23 13:57:47 -05:00
Javier Jardón
48f572822c [docs] Fix documentation build warnings
Fix issues when using GI annotations so the xslt does a
fallback if the local links do not exist.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=604876
2010-01-12 15:47:00 +01:00
Matthias Clasen
837e16789f Add new symbols 2009-07-03 15:22:02 -04:00
Stefan Kost
379f6e03a5 Add online urls for library.gnome.org. This allows other docs to do
* gdk-pixbuf/gdk-pixbuf.sgml:
	* gdk/gdk-docs.sgml:
	* gtk/gtk-docs.sgml:
	* libgail-util/gail-libgail-util-docs.sgml:
	  Add online urls for library.gnome.org. This allows other docs to do
          gtkdoc-rebase --online --html-dir=html
          before publishing docs and have working xrefs.
          Whitespece cleanup for gdk/gdk-docs.sgml.


svn path=/trunk/; revision=22287
2009-02-06 08:16:22 +00:00
Matthias Clasen
012a1decaa Add another index
svn path=/trunk/; revision=21930
2008-12-26 04:22:07 +00:00
Stefan Kost
9e90452bac Use xi:include instead of entities to ease maintenance and speed up
* gdk-pixbuf/gdk-pixbuf-csource.xml:
	* gdk-pixbuf/gdk-pixbuf-from-drawables.sgml:
	* gdk-pixbuf/gdk-pixbuf-query-loaders.xml:
	* gdk-pixbuf/gdk-pixbuf-rendering.sgml:
	* gdk-pixbuf/gdk-pixbuf.sgml:
	* gdk-pixbuf/porting-from-imlib.sgml:
	* gdk/gdk-docs.sgml:
	* gdk/multihead.sgml:
	* libgail-util/gail-libgail-util-docs.sgml:
	  Use xi:include instead of entities to ease maintenance and speed up
	  documentation build. Fixes #540967


svn path=/trunk/; revision=21304
2008-09-06 09:47:18 +00:00
Matthias Clasen
45e33fe9c2 Go back to 2.13.0 as version for now, as there was no consensus to do the
2008-02-15  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Go back to 2.13.0 as version for now,
        as there was no consensus to do the jump.

        * many other places: Update Since: tags.



svn path=/trunk/; revision=19586
2008-02-15 23:42:42 +00:00
Matthias Clasen
66f0e87506 Updates
2008-02-15  Matthias Clasen  <mclasen@redhat.com>

        * gdk/gdk-docs.xml:
        * gdk/gdk-sections.txt: Updates


svn path=/trunk/; revision=19578
2008-02-15 19:01:39 +00:00
Matthias Clasen
9bf93a6fc8 Add docs
svn path=/trunk/; revision=19167
2007-12-13 05:49:11 +00:00
Matthias Clasen
7854bd1b6e Add functions to allow threadsafe handling of idles and timeouts wrt. to
2006-12-22  Matthias Clasen  <mclasen@redhat.com>

        * gdk/gdk.symbols:
        * gdk/gdk.h:
        * gdk/gdk.c: Add functions to allow threadsafe handling
        of idles and timeouts wrt. to the GDK lock.  (#321886,
        Chris Wilson)
2006-12-22 17:46:32 +00:00
Matthias Clasen
67d685f2e8 Bump version to 2.9.0
2005-08-26  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Bump version to 2.9.0

	* gdk-pixbuf/gdk-pixbuf.sgml:
	* gdk/gdk-docs.sgml:
	* gtk/gtk-docs.sgml: Add indices for new
	symbols in 2.10
2005-08-26 18:52:48 +00:00
Matthias Clasen
03b9bae824 Fix the "new in 2.8" index.
2005-07-08  Matthias Clasen  <mclasen@redhat.com>

	* gdk/gdk-docs.sgml: Fix the "new in 2.8" index.

	* gdk-pixbuf/gdk-pixbuf.sgml: Add the "new in 2.8" index.
2005-07-08 15:03:20 +00:00
Matthias Clasen
8292c4d374 Add a section for the Cairo functions.
2005-06-09  Matthias Clasen  <mclasen@redhat.com>

	* gdk/gdk-sections.txt:
	* gdk/tmpl/cairo_interaction.sgml:
	* gdk/gdk-docs.sgml: Add a section for the Cairo functions.
2005-06-10 03:53:45 +00:00
Matthias Clasen
7647ecb4dd Add an index for 2.8 symbols.
2005-01-18  Matthias Clasen  <mclasen@redhat.com>

	* gdk/gdk-docs.sgml: Add an index for 2.8 symbols.

	* gdk/gdk-sections.txt: Add gdk_display_warp_pointer.
2005-01-18 21:02:00 +00:00
Matthias Clasen
3002f39f53 Add gtk_menu_get_for_attach_widet, gtk_tree_view_get_fixed_height_mode,
2004-05-10  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtk-sections.txt: Add gtk_menu_get_for_attach_widet,
	gtk_tree_view_get_fixed_height_mode,
	gtk_tree_view_set_fixed_height_mode,
	gtk_tree_view_get_hover_selection,
	gtk_tree_view_set_hover_selection

	* gdk/gdk-sections.txt: Add gdk_window_set_user_time().

	* gdk-pixbuf/gdk-pixbuf.sgml:
	* gtk/gtk-docs.sgml:
	* gdk/gdk-docs.sgml: Add an index for 2.6 additions.
2004-05-10 20:28:44 +00:00