summaryrefslogtreecommitdiff
path: root/gsk
Commit message (Collapse)AuthorAgeFilesLines
* gsk: Remove gsk_renderer_create_cairo_surface()Benjamin Otte2018-03-292-40/+0
| | | | It's not used anymore.
* renderer: Get rid of unused member variableBenjamin Otte2018-03-291-3/+0
|
* gsk/gl: Include cairo.h consistentlyChun-wei Fan2018-03-282-2/+2
| | | | | | | Follow the other sources that include cairo.h, by just doing #include <cairo.h>, not <cairo/cairo.h>. https://bugzilla.gnome.org/show_bug.cgi?id=773299
* gl renderer: Fix some crashesTimm Bäder2018-03-271-8/+24
| | | | When the first op is a modelview or projection change.
* gl renderer: Rename everything called window to surfaceTimm Bäder2018-03-261-19/+19
|
* rendernode: Fix serializingBenjamin Otte2018-03-262-4/+5
| | | | | | | | Adding the offset node broke serialization in 2 ways: 1. We store the enum value in the node, so make sure to not change it for existing values 2. The offset node was missing in the deserialization lookup table
* rendernode: Add an offset nodeBenjamin Otte2018-03-266-2/+215
| | | | | | | | | This is a special case of the transform node that does a 2D translation. The implementation in the Vulkan and GL renderers is crude and just does the same as the transform node. Nothing uses that node yet.
* gl renderer: Skip all 0-sized nodesTimm Bäder2018-03-251-0/+5
| | | | These will cause problems later on.
* gl renderer: Remove cairo node special caseTimm Bäder2018-03-251-36/+1
|
* rendernode: Remove renderer argumentBenjamin Otte2018-03-242-23/+2
| | | | It's not needed to create Cairo nodes anymore.
* rendernode: Create Cairo surfaces as recording surfacesBenjamin Otte2018-03-241-34/+38
| | | | | | | | | | This way, we can postpone the actual rendeing of the node until the renderer. This allows the renderer to choose the right scale to render at, so it can decide to use 2x scale for hidpi on its own. Last but not least, it makes all nodes independent of the context they are created in, because they do not need to know at snapshot time what they will ultimately be rendered into.
* vulkan: Remove special case for Cairo surfacesBenjamin Otte2018-03-241-39/+9
| | | | | This is in preparation for the next commits which switch Cairo nodes to recording surfaces.
* Continue renaming window to surfaceAlexander Larsson2018-03-215-66/+66
| | | | This renames a lot of arguments, local variables and functions.
* Merge branch 'rename-window-to-surface' into 'master'Alexander Larsson2018-03-209-73/+73
|\ | | | | | | | | Rename window to surface See merge request GNOME/gtk!72
| * GdkSurface: Rename various functions and variablesAlexander Larsson2018-03-207-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an automatic rename of various things related to the window->surface rename. Public symbols changed by this is: GDK_MODE_WINDOW gdk_device_get_window_at_position gdk_device_get_window_at_position_double gdk_device_get_last_event_window gdk_display_get_monitor_at_window gdk_drag_context_get_source_window gdk_drag_context_get_dest_window gdk_drag_context_get_drag_window gdk_draw_context_get_window gdk_drawing_context_get_window gdk_gl_context_get_window gdk_synthesize_window_state gdk_surface_get_window_type gdk_x11_display_set_window_scale gsk_renderer_new_for_window gsk_renderer_get_window gtk_text_view_buffer_to_window_coords gtk_tree_view_convert_widget_to_bin_window_coords gtk_tree_view_convert_tree_to_bin_window_coords The commands that generated this are: git sed -f g "GDK window" "GDK surface" git sed -f g window_impl surface_impl (cd gdk; git sed -f g impl_window impl_surface) git sed -f g WINDOW_IMPL SURFACE_IMPL git sed -f g GDK_MODE_WINDOW GDK_MODE_SURFACE git sed -f g gdk_draw_context_get_window gdk_draw_context_get_surface git sed -f g gdk_drawing_context_get_window gdk_drawing_context_get_surface git sed -f g gdk_gl_context_get_window gdk_gl_context_get_surface git sed -f g gsk_renderer_get_window gsk_renderer_get_surface git sed -f g gsk_renderer_new_for_window gsk_renderer_new_for_surface (cd gdk; git sed -f g window_type surface_type) git sed -f g gdk_surface_get_window_type gdk_surface_get_surface_type git sed -f g window_at_position surface_at_position git sed -f g event_window event_surface git sed -f g window_coord surface_coord git sed -f g window_state surface_state git sed -f g window_cursor surface_cursor git sed -f g window_scale surface_scale git sed -f g window_events surface_events git sed -f g monitor_at_window monitor_at_surface git sed -f g window_under_pointer surface_under_pointer (cd gdk; git sed -f g for_window for_surface) git sed -f g window_anchor surface_anchor git sed -f g WINDOW_IS_TOPLEVEL SURFACE_IS_TOPLEVEL git sed -f g native_window native_surface git sed -f g source_window source_surface git sed -f g dest_window dest_surface git sed -f g drag_window drag_surface git sed -f g input_window input_surface git checkout NEWS* po-properties po docs/reference/gtk/migrating-3to4.xml
| * GdkWindow -> GdkSurface initial type renameAlexander Larsson2018-03-209-67/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This renames the GdkWindow class and related classes (impl, backend subclasses) to surface. Additionally it renames related types: GdkWindowAttr, GdkWindowPaint, GdkWindowWindowClass, GdkWindowType, GdkWindowTypeHint, GdkWindowHints, GdkWindowState, GdkWindowEdge This is an automatic conversion using the below commands: git sed -f g GdkWindowWindowClass GdkSurfaceSurfaceClass git sed -f g GdkWindow GdkSurface git sed -f g "gdk_window\([ _\(\),;]\|$\)" "gdk_surface\1" # Avoid hitting gdk_windowing git sed -f g "GDK_WINDOW\([ _\(]\|$\)" "GDK_SURFACE\1" # Avoid hitting GDK_WINDOWING git sed "GDK_\([A-Z]*\)IS_WINDOW\([_ (]\|$\)" "GDK_\1IS_SURFACE\2" git sed GDK_TYPE_WINDOW GDK_TYPE_SURFACE git sed -f g GdkPointerWindowInfo GdkPointerSurfaceInfo git sed -f g "BROADWAY_WINDOW" "BROADWAY_SURFACE" git sed -f g "broadway_window" "broadway_surface" git sed -f g "BroadwayWindow" "BroadwaySurface" git sed -f g "WAYLAND_WINDOW" "WAYLAND_SURFACE" git sed -f g "wayland_window" "wayland_surface" git sed -f g "WaylandWindow" "WaylandSurface" git sed -f g "X11_WINDOW" "X11_SURFACE" git sed -f g "x11_window" "x11_surface" git sed -f g "X11Window" "X11Surface" git sed -f g "WIN32_WINDOW" "WIN32_SURFACE" git sed -f g "win32_window" "win32_surface" git sed -f g "Win32Window" "Win32Surface" git sed -f g "QUARTZ_WINDOW" "QUARTZ_SURFACE" git sed -f g "quartz_window" "quartz_surface" git sed -f g "QuartzWindow" "QuartzSurface" git checkout NEWS* po-properties
* | gl renderer: Support large texturesTimm Bäder2018-03-203-33/+178
| | | | | | | | By tiling them.
* | gl renderer: add basic code to support texture tilingTimm Bäder2018-03-203-21/+42
| |
* | rendernode: Don't use gdk_texture_download_surfaceTimm Bäder2018-03-201-1/+1
| | | | | | | | It can't handle the texture sizes we'd like to support
* | rendernode: Don't use gdk_texture_download_surfaceTimm Bäder2018-03-201-6/+7
| | | | | | | | It can't handle the texture sizes we'd like to support
* | Revert "gl renderer: Limit texture node size to clip"Timm Bäder2018-03-201-54/+13
| | | | | | | | | | | | | | This reverts commit 0234e8e2c94ff6b0c6f4dfcd0c940910a97eca11. This broke partially clipped-away nodes when they are being transformed, e.g. by a rotation
* | gldriver: Name driver instances 'self'Timm Bäder2018-03-201-54/+54
|/
* gdk: Add GDK_MEMORY_DEFAULTBenjamin Otte2018-03-182-5/+2
| | | | | | | This is the default memory format. I added it because it is way better than including a private header and using GDK_MEMORY_CAIRO_FORMAT_ARGB32.
* gdk: Remove gdk_texture_new_from_data()Benjamin Otte2018-03-182-4/+28
| | | | Use gdk_memory_texture_new() instead.
* gl renderer: Set border program outline stateTimm Bäder2018-03-151-0/+2
|
* gl renderer: Remove shadow programTimm Bäder2018-03-155-25/+4
| | | | | Drawing shadows is the same task as drawing text in our case and these two shaders have been the same thing for quite a while.
* gl renderer: Fix clipped bordersTimm Bäder2018-03-154-56/+63
| | | | Stop abusing the clip rect for borders.
* shaderbuilder: Remove unused APITimm Bäder2018-03-152-189/+0
|
* gl: Move shaderbuilder into gl/ subdirectoryTimm Bäder2018-03-153-1/+1
| | | | It only handles OpenGL shaders.
* gl renderer: Draw offscreen nodes in device pixelsTimm Bäder2018-03-151-3/+6
| | | | | We need to draw them upscaled, of course. This fixes button hover (or, more generally, crossfade nodes) in hidpi setups.
* gl renderer: Fix rounded clips in hidpiTimm Bäder2018-03-151-4/+19
|
* GskGLDriver: Use g_assert_cmphex for GL constantsTimm Bäder2018-03-151-1/+1
|
* gl renderer: Draw rounded clip child to a textureTimm Bäder2018-03-141-19/+47
| | | | | | And then clip the texture using the current (maybe also rounded) clip. This way, the result is correct. We don't necessarily have to do the offscreen drawing in any case, but got the safe route for now.
* gl renderer: Properly draw gl textures from a different contextTimm Bäder2018-03-142-30/+34
| | | | | Temporarily switch to the texture's gl context, download the texture and create a new one in our context for it.
* gdk: Split out GL textureBenjamin Otte2018-03-072-5/+7
| | | | | | | Put GdkGLTexture into its own file and rename the API to gdk_gl_texture_foo() instead of gdk_texture_foo_for_gl(). Apart from naming, no actual code changes.
* rendernodes: Add gsk_text_node_new_with_boundsTimm Bäder2018-03-042-5/+44
| | | | | | An alternative GskTextNode constructor that does no text measuring. That way, we can measure the text before and check if the node will be outside of the current clip anyway.
* rendernodes: Add missing nullable annotationTimm Bäder2018-03-041-1/+1
|
* gl renderer: Limit texture node size to clipTimm Bäder2018-03-041-19/+61
|
* glglyphcache: Pass lookup key to g_hash_table_lookup directlyTimm Bäder2018-03-041-6/+6
|
* gl: Make blur nodes with radius ∈ ]0; 1[Timm Bäder2018-02-271-1/+1
| | | | | Otherwise, the radius here ends up being 0 and we don't draw anything at all.
* gsk: Increase blur node bounds by blur radiusTimm Bäder2018-02-271-0/+3
| | | | | Otherwise, the resulting node will be too small and the result looks clipped.
* vulkan: Keep track of command buffersBenjamin Otte2018-02-171-0/+20
| | | | Fixes a rather large memleak.
* gl renderer: Increase offscreen texture sizeTimm Bäder2018-02-161-2/+2
| | | | | This fixes blurry checkbutton marks in hidpi setups, but breaks button hover effects. That's another problem.
* build: install gsk-autocleanup.hTimm Bäder2018-02-061-0/+1
|
* gl renderer: Check the scale factor for every renderTimm Bäder2018-02-061-4/+2
| | | | This way we pick up changes in the GdkWindow's scale_factor.
* The big versioning cleanupMatthias Clasen2018-02-067-201/+107
| | | | | | | Remove all the old 2.x and 3.x version annotations. GTK+ 4 is a new start, and from the perspective of a GTK+ 4 developer all these APIs have been around since the beginning.
* gsk: Add autocleanup definitionsMatthias Clasen2018-02-062-0/+30
| | | | This may be useful for applications using render nodes.
* Don't put gdk types into a gsk headerMatthias Clasen2018-02-051-1/+0
| | | | | This is a leftover from when GskTexture was moved to gdk.
* roundedrect: Fix coordinate mixup in contains_pointTimm Bäder2018-02-041-2/+2
| | | | | This together with the optimizations in GtkSnapshot was causing circular buttons to become squared when partially scrolled out of view.
* gl renderer: Use a gl texture in render_textureTimm Bäder2018-02-041-80/+23
| | | | | Get rid of the manual y flipping and cairo business. This keeps the gl unit tests working at least.