summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update callersno-init-argsMatthias Clasen2016-12-28151-176/+209
| | | | Adapt all our tests and examples to the new initialization api.
* Drop gdk init apiMatthias Clasen2016-12-282-197/+0
| | | | Supporting separately initialized gdk is just not worth it.
* Drop arguments from gtk_initMatthias Clasen2016-12-282-45/+15
| | | | | This is our ultimate goal: no more commandline argument handling. Lots of callers will have to be updated.
* Simplify initialization codeMatthias Clasen2016-12-281-105/+10
| | | | | Now that gtk_get_option_group and gtk_parse_args are no longer public, we can get rid of them.
* Drop the --gtk-debug and --gtk-no-debug optionsMatthias Clasen2016-12-271-30/+0
| | | | We have environment variables that cover this.
* Drop the --g-fatal-warnings argumentMatthias Clasen2016-12-271-12/+0
| | | | We don't need it, GLib has an environment variable for this.
* Drop the --gtk-modules argumentMatthias Clasen2016-12-271-19/+0
| | | | We don't need it; the environment variable is enough.
* Don't export gtk_get_option_groupMatthias Clasen2016-12-274-25/+1
| | | | | We want to get rid of commandline option handling in GTK+. This is a step in that direction.
* Stop exporting gtk_parse_argsMatthias Clasen2016-12-272-27/+1
| | | | | We want to stop handling commandline arguments, and that is the sole purpose of this function. So it has to go
* Drop gtk_init_with_argsMatthias Clasen2016-12-272-77/+0
| | | | | | We want to simplify our initialization code and remove all commandline argument handling from it. The first stop for this is to reduce the number of gtk_init variants we have.
* gsk: Add GSK_RENDERING_MODE=full-redrawBenjamin Otte2016-12-273-3/+22
| | | | | | | | | | | | | | | | | | | Forces a full redraw every frame. This is done generically, so it's supported on every renderer. For widget-factory first page (with the spinner spinning and progressbar pulsing), I get these numbers per frame: action clipped full redraw snapshot 0ms 7-10ms cairo rendering 0ms 10-15ms Vulkan rendering 3-5ms 18-20ms Vulkan expected * 0ms 1-2ms GL rendering unsupported 55-62ms * expected means disabling rendering of unsupported render nodes, instead of doing fallback drawing. So it overestimates the performance, because borders and box-shadows are disabled.
* vulkan: Only render minimal regionBenjamin Otte2016-12-272-55/+49
| | | | | | | | | | | | It's faster to render once for every rectangle in the clip region than rendering the outline of the clip region. Especially because this reduces the time necessary to build up the frame data. In widget-factory (where we have 3 rectangles), this leads to a 5x speedup in the rendering time rendering alone. Snapshotting time goes from 10ms to ~1ms, which is another huge improvement.
* gdkvulkan: Track changes per swapchain imageBenjamin Otte2016-12-261-0/+33
| | | | | ... and use those in begin_frame() to ensure all of the invalid area gets invalidated.
* vulkan: Handle linear gradientsBenjamin Otte2016-12-2620-1/+771
| | | | | | | | Note: We interpolate premultiplied colors as per the CSS spec. This i different from Cairo, which interpolates unpremultiplied. So in testcases with translucent gradients, it's actually Cairo that is wrong.
* tests: Add linear gradient testBenjamin Otte2016-12-261-0/+82
|
* tests: Add a patternspec argument for test creationBenjamin Otte2016-12-261-3/+17
| | | | | | | That way, I don't need to recreate all the tests I don't care about. This is particularly useful when I want to change the size of the testcase.
* tests: Make rendernode --dump-variant actually workBenjamin Otte2016-12-261-1/+4
|
* gsk: Add missing Mozilla copyright headerBenjamin Otte2016-12-261-0/+5
| | | | | I stole one of their shader functions, and if I steal, I might as well do it right.
* css: Handle repeating gradients with only one offsetBenjamin Otte2016-12-261-0/+13
| | | | | | | | Example: repeating-linear-gradient(red 50%, blue 50%) Those gradients in Firefox draw a solid image of the last color, so do the same here.
* gsk: Insist on ordered color stopsBenjamin Otte2016-12-261-0/+18
| | | | | I don't want to sort them later for the shader preparation, so make sure they come in ordered.
* vulkan: Fix coordinate setupBenjamin Otte2016-12-261-6/+6
| | | | | This makes rendering textures work when the top left of the rendered texture is not at (0, 0).
* tests: Make sure number of runs is 1.Benjamin Otte2016-12-261-1/+6
|
* Box: Restore an accidentally deleted commentDaniel Boles2016-12-261-1/+3
| | | | Also, split a MAX() onto its own line to match the others.
* Box: avoid recalc/reassignments, improve var namesDaniel Boles2016-12-251-54/+58
| | | | | | | | | | | | Homogeneous branches repeated the calculation/assignment of the initial space available to children. This avoids that by shuffling some code. Perhaps more importantly, in doing that, I ended up with some ambiguous names, and Company and I realised how vague the pre-existing naming was. "size" becomes "extra_space", as this is what it represents. Conversely, "extra" becomes "size_given_to_child" (albeit still given out in two different ways depending on whether the Box is homogeneous). My hope is that these sections of code are now somewhat less baffling than before!
* Box: Don't unnecessarily repeat a function callDaniel Boles2016-12-251-2/+2
| | | | The spacing was already saved in a variable just above.
* tests: Remove executable bit from C filesdjb2016-12-252-0/+0
|
* tests: Fix logic to detect argument lengthBenjamin Otte2016-12-251-1/+1
|
* tests: Add a --runs argument to rendernodeBenjamin Otte2016-12-251-10/+29
| | | | | This way we can rerun fast tests lots of times - not so much for averaging times, but more for sysprof'ing.
* tests: Add another testBenjamin Otte2016-12-251-0/+52
| | | | In this test, Cairo is almost as fast as Vulkan. I wonder why.
* vulkan: Add shader for color drawing with rectangle clipBenjamin Otte2016-12-258-1/+59
|
* vulkan: We use VK_FORMAT_B8G8R8A8_UNORMBenjamin Otte2016-12-254-11/+11
| | | | | ... not SRGB. SRGB messes up alpha compositing, GdkRGBA and everything else.
* Updated Czech translationMarek Černocký2016-12-241-11/+18
|
* vulkan: Add proof-of-concept clip implementationBenjamin Otte2016-12-247-3/+97
| | | | We can now clip to cicular rounded rectangles when drawing colors.
* vulkan: Fold clip into push constantsBenjamin Otte2016-12-2411-44/+164
| | | | | | As a side effect, the clipping data is now available inside shaders. Not that any shader would use them yet, but they could!
* vulkan: Change handling of push constantsBenjamin Otte2016-12-243-27/+32
| | | | | Instead of storing the wire format, store the true structs and only convert to the wire format when needed.
* gsk: Add debug category for fallbacksBenjamin Otte2016-12-243-9/+18
| | | | ... and use it for the cases in Vulkan where we fall back to Cairo.
* gsk: Add GskVulkanClipBenjamin Otte2016-12-248-23/+353
| | | | | | This is now tracking the clips added by the clip nodes. If any particular node can't deal with a clip, it falls back to Cairo rendering. But if it can, it will render it directly.
* iconhelper: Invalidate style before accessing textureBenjamin Otte2016-12-241-2/+2
| | | | | | Invalidating the style might cause invalidation of the texture. So we end up with a pointer to freed memory. SAD!
* vulkan: Try combining draw callsBenjamin Otte2016-12-241-3/+9
| | | | | This gives a 5-7% speedup in the case where we're just drawing N colors and nothing else. So it;s not tremendously useful, but noticeable.
* gsk: Fix memory leak in gsk_render_node_write_to_file()Garrett Regier2016-12-231-0/+1
|
* Update POTFILES.inPiotr Drąg2016-12-232-0/+2
|
* calendar: Implement snapshot()Benjamin Otte2016-12-231-116/+109
|
* tests: Improve rendernode test furtherBenjamin Otte2016-12-231-43/+51
| | | | | | - Print benchmark output in fallback path - Always run rendering, even when no filename given - Don't require a filename when running with --benchmark
* cellrenderer: Remove render() vfuncBenjamin Otte2016-12-234-65/+37
| | | | Make the last 2 cell renderers create the cairo node themselves.
* cellrendererpixbuf: Implement snapshot()Benjamin Otte2016-12-231-12/+13
|
* cellrendererprogress: Implement snapshot()Benjamin Otte2016-12-231-35/+44
|
* cellrenderertoggle: Implement snapshot()Benjamin Otte2016-12-231-32/+46
|
* cellrenderertext: Implement snapshot()Benjamin Otte2016-12-231-21/+27
|
* cellrenderer: Move snapshotting down into cell renderersBenjamin Otte2016-12-235-127/+110
| | | | | | Now that every call to GtkCellArea is a snapshot call and no more cairo calls are left, move the actual differentiation between Cairo and Snapshot down to the cell renderer.
* tests: Add rendernode-create-testsBenjamin Otte2016-12-232-0/+213
| | | | | | | Little tool that creates a bunch of test files to throw add the rendernode binary. They should really be part of a testsuite, but we have none, so OI just put them here.