Benjamin Otte
5dfb74c70c
vulkan: Get vertex description from pipeline subclass
2016-12-20 18:01:11 +01:00
Benjamin Otte
e68b18aa4e
vulkan: Move vertex data tracking to the pipeline subclass
...
That way, different pipelines can draw different kinds of data.
2016-12-20 18:01:11 +01:00
Benjamin Otte
9aecd6dd56
vulkan: Add GskVulkanBlendPipeline
...
So far that's just a simple pipeline that doesn't do anything.
2016-12-20 18:01:11 +01:00
Benjamin Otte
453478719d
vulkan: Make GskVulkanPipeline derivable
2016-12-20 18:01:11 +01:00
Benjamin Otte
7d837a2ae6
vulkan: Split PipelineLayout into its own object
...
This way, we can share the layout between different pipelines.
2016-12-20 18:01:11 +01:00
Benjamin Otte
62eb9d42aa
vulkan: Add infrastructure for push constants
...
THe code includes fragment push constants for colors, but that code is
so far unused.
2016-12-20 18:01:10 +01:00
Benjamin Otte
93448b8c7e
vulkan: Enable alpha blending
...
We will need that once we actually composite stuff.
2016-12-09 18:35:52 +01:00
Benjamin Otte
583956266e
vulkan: Make MVP matrix available to vertex shader
...
We use push constants for this.
2016-12-09 18:35:51 +01:00
Benjamin Otte
3c4b952256
vulkan: Make GskVulkanRenderer work
...
We now create a Cairo renderer, render to an image surface and upload
and retnder it with Vulkan.
2016-12-09 18:35:51 +01:00
Benjamin Otte
a7cbbaf8fc
gsk: Pass texture coordinates to Vulkan renderer
...
We just render the coordinates as color, we don't do anything with them
yet.
2016-12-09 18:35:51 +01:00
Benjamin Otte
2a0e7f8829
gsk: Loads of work on Vulkan backend
...
We can now upload vertices.
And we use this to draw a yellow background. Which is clearly superior
to not drawing anything.
Also, we have shaders now. If you modify them, you need glslc installed
so they can be recompiled into Spir-V bytecode.
2016-12-09 18:35:51 +01:00