| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current way of exposing GDK API that should be considered internal
to GTK+ is to append a 'libgtk_only' suffix to the function name; this
is not really safe.
GLib has been using a slightly different approach: a private table of
function pointers, and a macro that allows accessing the desired symbol
inside that vtable.
We can copy the approach, and deprecate the 'libgtk_only' symbols in
lieu of outright removal.
https://bugzilla.gnome.org/show_bug.cgi?id=739781
|
|
|
|
|
|
| |
This is disabled by default. Enable with --enable-mir-backend.
This backend is a combined work of Robert Ancell and Ryan Lortie.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This simplifies the code and - more importantly - fixes the cases like
in testsuite/reftests where the no_undefined definition was missing.
https://bugzilla.gnome.org/show_bug.cgi?id=736382
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=734735
|
| |
|
|
|
|
| |
This reverts commit d76785a993aa71f880d5805d1c010d4d12000bc1.
|
|
|
|
|
| |
We no longer have .def files, so don't refer to them from the
win32 build machinery. Patch by Cilyan Olowen
|
|
|
|
|
| |
We need to account for the sources that moved to gdk/deprecated/, so the
slashes must be converted here.
|
|
|
|
|
| |
It has been replaced by GdkRGBA. Time to make it official.
http://bugzilla.gnome.org/show_bug.cgi?id=636695
|
|
|
|
|
|
|
| |
Introspection scanner-generation script gets compiler from the CC
environment, we need to set it.
https://bugzilla.gnome.org/show_bug.cgi?id=722817
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=722817
|
| |
|
|
|
|
|
|
|
|
|
| |
-Add Visual Studio 2008 projects and pre-configured gdkconfig.h for
Broadway builds
-Decouple the Visual Studio property sheets, to simplify maintenance and
enhance flexibility for different builds
Visual Studio 2010 projects updates will follow later.
|
|
|
|
|
| |
This is a reorganization of the testsuite to be in the testsuite/
directory, so it can be installed from there.
|
| |
|
|
|
|
|
| |
It's unused and was only useful when perl wasn't installed. But perl is
a dependency of glib these days, so it's useless.
|
|
|
|
| |
In addition to 019ad96479a9bafbf2948aa240dd57e2229f5985
|
|
|
|
|
| |
The exported symbols are now controlled explicitly from the headers,
no need to double-check.
|
|
|
|
|
| |
All export control is now happening through annotations
in the headers.
|
|
|
|
|
|
|
|
| |
Change the visibility handling to be the same way we do it in
GLib now. We pass -fvisibility=hidden to gcc and decorate public
functions with __attribute__((visibility("default"))).
This commit just does this for GDK, GTK+ will follow later.
|
|
|
|
| |
To enable compiling the quartz backend after a6a4428
|
|
|
|
|
|
|
|
|
|
|
| |
This is another step towards making GdkDisplayManager backend-agnostic.
Most of the backends profit from this as their atom implementations
where generic anyway - x11 needed that to allow multiple X displays and
broadway, quartz and wayland don't have the concept of displays.
The X11 backend still did things, so I only #if 0'd some code but did
not actually update anything.
|
|
|
|
|
| |
File removal in bb4953f3e8e102264a82ea4938b7813b85320b22 wasn't checked
in here.
|
|
|
|
|
|
| |
Now that GdkFrameClock is a class, not interface, there's no real advantage
to splitting the frame history into an aggregate object, so directly
merge it into GdkFrameClock.
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's unlikely that anyone will want to have, say, a GtkWidget that
also acts as a GdkFrameClock, so an abstract base class is as
flexible as making GdkFrameClock an interface, but has advantages:
- If we decide to never make implementing your own frame clock
possible, we can remove the virtualization.
- We can put functionality like history into the base class.
- Avoids the oddity of a interface without a public interface
VTable, which may cause problems for language bindings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to be able to track statistics about how well we are drawing,
and in order to be able to do sophisticated things with frame timing
like predicting per-frame latencies and synchronizing audio with video,
we need to be able to track exactly when previous frames were drawn
to the screen.
Information about each frame is stored in a new GdkFrameTimings object.
A new GdkFrameHistory object is added which keeps a queue of recent
GdkFrameTimings (this is added to avoid further complicating the
implementation of GdkFrameClock.)
https://bugzilla.gnome.org/show_bug.cgi?id=685460
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add an object GdkFrameClock that we associate with a GdkWindow.
This tracks when the window needs to be repainted, and will also
be used for other operations in the future like relayout and
updating animations.
Based on a patch from Havoc Pennington:
https://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00004.html
https://bugzilla.gnome.org/show_bug.cgi?id=685460
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=692605
|
| |
|
|
|
|
|
|
|
|
| |
Add a fallback-c89.c for the gdk/ subdirectory as there is code that uses
functions that are introduced by C99. This currently adds fallback
implementations for MSVC for isnan() and isinf()
Dist this "new" source file as well
|
|
|
|
|
|
|
| |
Setting -I$(top_builddir) before -I$(top_srcdir) causes that
g-ir-scanner picks up boxing definitions generated by glib-mkenums.
https://bugzilla.gnome.org/show_bug.cgi?id=672133
|
|
|
|
| |
Also remove support for XInput.h
|
|
|
|
|
|
|
| |
Since it's generated, we install the header by putting it into
gdkinclude_HEADERS, so it's wrong to put it again into
gdk_public_h_sources.
This fixes the build.
|
|
|
|
|
|
|
|
|
|
|
|
| |
These macros follow the recent changes in GLibs deprecation
setup. We now annotate deprecated functions with the version
they were deprecated in, and you can define the macro
GDK_VERSION_MIN_REQUIRED to cut off deprecation warnings for
'recent' deprecations.
At the same time, we introduce version annotations for new API
and allow you to avoid 'recent' API additions by defining
GDK_VERSION_MAX_ALLOWED.
|
|
|
|
|
|
|
|
|
|
| |
The new file defines GDK_DISABLE_DEPRECATION_WARNINGS so it can happily
use deprecated APIs.
This commit moves those functions there that use deprecated functions
and currently cause warnings.
With this commit, GDK compiles without deprecation warnings.
|
|
|
|
|
|
|
| |
keyname-table.h was modified by hand, and gen-keyname-table.pl
couldn't be used to generate that file again.
https://bugzilla.gnome.org/show_bug.cgi?id=662628
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
-Update to distribute the VS2010 files.
-Added rules in Makefile.am's of GDK and GTK to fill in the
project/filter files templates with up-to-date source file
listings to simplify maintenace.
Any comments on the usage of the VS2010 files are welcome!
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile.am
configure.ac
gdk/Makefile.am
gtk/gtksettings.c
gtk/gtkwindow.c
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
gdk/gdkdisplaymanager.c
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
gdk/gdkdisplaymanager.c
|
| | |/
| |/|
| | |
| | | |
https://bugzilla.gnome.org/show_bug.cgi?id=643440
|
| | | |
|
|\ \ \
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
At the same time, change the library sonames for -3.0 to just -3.
This is necessary since the 2.99 releases installed libraries like
libgtk-3.0.so.0.9903.0, and we want to prevent the library version
number from jumping back. So 3.0 will have libgtk-3.so.0.0.0.
|