summaryrefslogtreecommitdiff
path: root/gsk
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* rendernode: Don't alloca() 8MBBenjamin Otte2018-02-031-1/+4
| | | | | | | | This happens when deserializing testcases and it really confuses valgrind into thinking we're longjmp()ing. And deserializing rendernodes is slow anyway, so who cares about a few more malloc()s.
* gl renderer: Clear resources after render_textureTimm Bäder2018-02-031-2/+2
| | | | | This makes multiple consecutive render_texture calls on the same renderer work.
* gl renderer: Reset clip when drawing offscreenTimm Bäder2018-01-271-1/+6
| | | | | Just like we reset the scissor test and the viewport, we also can't use the current clip anymore in this case.
* GskRoundedRect: Fix GSK_ROUNDED_RECT_INIT macroTimm Bäder2018-01-271-1/+8
| | | | | GskRoundedRect does not have a .rect member, it's 'bounds'. Also, properly initialize all fields, i.e. all the corners.
* gl renderer: Fix hidpi cairo node renderingTimm Bäder2018-01-271-2/+5
| | | | | | We can't just unconditionally create a larger texture here, since the incoming cairo surface might have a device scale that doesn't fit our scale_factor. Instead, look up the surface device scale and use that.
* gl renderer: Make width/height relation more obviousTimm Bäder2018-01-271-2/+4
| | | | | In add_offscreen_ops, we use the max_x/min_x values for the texture and viewport width, and the max_y/min_y for the texture and viewport height.
* gl renderer: Fix outset shadow outline transformTimm Bäder2018-01-231-12/+5
| | | | This fixes hidpi blurred outset shadows
* gl renderer: Fix shadow node child offsetTimm Bäder2018-01-191-5/+6
| | | | | | We shouldn't apply the shadow offset when drawing the child offscreen, instead apply it afterwards when we draw it to the current render target.
* gl renderer: Render GL textures upside downTimm Bäder2018-01-181-4/+31
| | | | | These come from an FBO so we need to flip the texture coords on the y axis, just like we do everywhere else.
* rendernodeimpl: Fix a crashTimm Bäder2018-01-171-1/+1
| | | | We may get a NULL renderer here.
* gsk: Handle GL texturesMatthias Clasen2018-01-171-0/+3
| | | | | These textures already have a GL texture in them, no need to create a new one.
* gl renderer: Render unblurred outset shadows differentlyTimm Bäder2018-01-154-17/+117
| | | | We don't need to draw anything to a texure for those.
* gskcairoblur: Don't apply y_scale twiceTimm Bäder2018-01-151-1/+1
| | | | | A version of 29f36fed085d51bad16ec0e3f7ba5085bf9f82e8 but for the blur we use in gsk.
* gsk: Add a setter for debug flagsMatthias Clasen2018-01-142-2/+9
| | | | | We need to set the global flags, since these are picked up initially by new renderers.
* gsk: Reorganize env varsMatthias Clasen2018-01-149-67/+44
| | | | | Get rid of GSK_RENDERING_MODE and add the flags to GSK_DEBUG, following the same pattern we use in gdk now.
* gsk: make logging per-rendererMatthias Clasen2018-01-1415-80/+134
| | | | | | | Add a setter for per-renderer debug flags, and use them where possible. Some places don't have easy access to a renderer, so this is not complete. Also, use g_message instead of g_print throughout.
* gsk: Drop unused debug flagsMatthias Clasen2018-01-142-12/+8
| | | | We are not logging anything for transforms or rendernodes atm.
* gsk: Clarify a debug messageMatthias Clasen2018-01-141-1/+1
| | | | We are printing a window type, not a display.
* gl renderer: Sprinkle some const aroundTimm Bäder2018-01-101-1/+1
|
* gl renderer: Fix shaders for glesTimm Bäder2018-01-086-15/+106
| | | | Remove uniform initializers, add casts to float, etc.
* gl: Fix copy&paste error in blur shaderTimm Bäder2018-01-081-1/+1
|
* gl renderer: Bring back hexbox drawingTimm Bäder2018-01-082-7/+13
|
* gl renderer: Use alpha uniform in inset shadow shaderTimm Bäder2018-01-081-1/+1
|
* gsk: Move Vulkan sources to a subdirectoryMatthias Clasen2018-01-0648-32/+32
| | | | Following what was already done for GL.