[WIP] Create pipeline for transparent on screen objects
This commit is contained in:
1 parent
3c72c9b387
commit
56c0b7922f
6 files changed
+31
-11
No files matched your search
@@ -31,7 +31,8 @@ ENV opengl
|
|||||||
FORMAT num
|
FORMAT num
|
||||||
SOURCES
|
SOURCES
|
||||||
shaders/shader.vert
|
shaders/shader.vert
|
||||||
shaders/shader.frag
|
shaders/solid_objects.frag
|
||||||
|
shaders/on_screen_text.frag
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(rse_graphics SHARED shaders/shader.vert.num shaders/shader.frag.num)
|
add_library(rse_graphics SHARED shaders/shader.vert.num shaders/shader.frag.num)
|
||||||
|
|||||||
File renamed without changes.
@@ -0,0 +1,18 @@
|
|||||||
|
#version 450
|
||||||
|
|
||||||
|
/* Each time texture count is changed this value also need to change. I have to fix it somehow. */
|
||||||
|
|
||||||
|
#extension GL_EXT_nonuniform_qualifier : enable
|
||||||
|
|
||||||
|
layout(set = 1, binding = 1) uniform sampler2D texSampler[];
|
||||||
|
|
||||||
|
layout(location = 0) in vec3 fragColor;
|
||||||
|
layout(location = 1) in vec2 fragTexCoord;
|
||||||
|
layout(location = 2) in flat uint instanceTextureId;
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 outColor;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 texturePixels = texture(texSampler[instanceTextureId], fragTexCoord);
|
||||||
|
outColor = vec4(fragColor * texturePixels, texturePixels.a);
|
||||||
|
}
|
||||||
@@ -51,25 +51,25 @@ void rse_graphics_test_function(void)
|
|||||||
{{0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}, {1.0f, 1.0f}},
|
{{0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}, {1.0f, 1.0f}},
|
||||||
{{-0.5f, 0.5f, 0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 1.0f}}};
|
{{-0.5f, 0.5f, 0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 1.0f}}};
|
||||||
|
|
||||||
struct rse_vertex_t vertices2[] = {{{-0.5f, -0.5f, -0.5f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}},
|
struct rse_vertex_t vertices2[] = {{{-0.5f, -0.5f, 0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 0.0f}},
|
||||||
{{0.5f, -0.5f, -0.5f}, {1.0f, 1.0f, 1.0f}, {1.0f, 0.0f}},
|
{{0.5f, -0.5f, 0.0f}, {1.0f, 1.0f, 1.0f}, {1.0f, 0.0f}},
|
||||||
{{0.5f, 0.5f, -0.5f}, {1.0f, 1.0f, 1.0f}, {1.0f, 1.0f}},
|
{{0.5f, 0.5f, 0.0f}, {1.0f, 1.0f, 1.0f}, {1.0f, 1.0f}},
|
||||||
{{-0.5f, 0.5f, -0.5f}, {1.0f, 1.0f, 1.0f}, {0.0f, 1.0f}}};
|
{{-0.5f, 0.5f, 0.0f}, {1.0f, 1.0f, 1.0f}, {0.0f, 1.0f}}};
|
||||||
|
|
||||||
// FIXME: Temporary array of vertices, for testing purposes
|
// FIXME: Temporary array of vertices, for testing purposes
|
||||||
uint16_t indices[] = {0, 1, 2, 2, 3, 0};
|
uint16_t indices[] = {0, 1, 2, 2, 3, 0};
|
||||||
|
|
||||||
uint16_t mesh_id = create_mesh(vertices, indices, 6, 6);
|
uint16_t mesh_id = create_mesh(vertices, indices, 6, 6);
|
||||||
create_mesh_instance(mesh_id, (struct rse_instance_data_t){
|
create_mesh_instance(mesh_id, (struct rse_instance_data_t){
|
||||||
{0.0f, 0.0f, 0.4f},
|
{0.0f, 0.0f, 2.4f},
|
||||||
{0.0f, 0.0f, rse_math_deg_to_radians(45.0f)},
|
{0.0f, 0.0f, rse_math_deg_to_radians(45.0f)},
|
||||||
1.0f,
|
1.0f,
|
||||||
tex_id_2
|
tex_id_2
|
||||||
});
|
});
|
||||||
|
|
||||||
create_mesh_instance(mesh_id, (struct rse_instance_data_t){
|
create_mesh_instance(mesh_id, (struct rse_instance_data_t){
|
||||||
{-1.0f, 0.0f, 0.3f},
|
{-0.5f, 0.0f, -1.0f},
|
||||||
{0.0f, 0.0f, 0.0f},
|
{0.0f, 0.0f, rse_math_deg_to_radians(10.0f)},
|
||||||
1.0f,
|
1.0f,
|
||||||
tex_id_2
|
tex_id_2
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -572,7 +572,7 @@ rse_err_t find_depth_format(VkFormat* found_format)
|
|||||||
{
|
{
|
||||||
#define formats_count 3
|
#define formats_count 3
|
||||||
rse_err_t status;
|
rse_err_t status;
|
||||||
VkFormat formats[formats_count] = {VK_FORMAT_D32_SFLOAT, VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT};
|
VkFormat formats[formats_count] = {VK_FORMAT_D32_SFLOAT};
|
||||||
|
|
||||||
STATUS_CHECK(find_supported_format(
|
STATUS_CHECK(find_supported_format(
|
||||||
formats,
|
formats,
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#define SHADER_MODULES_COUNT 2U
|
#define SHADER_MODULES_COUNT 3U
|
||||||
|
|
||||||
enum shader_stage_t
|
enum shader_stage_t
|
||||||
{
|
{
|
||||||
@@ -33,7 +33,8 @@ VkShaderModule g_shader_modules[SHADER_MODULES_COUNT];
|
|||||||
|
|
||||||
const char* g_shader_paths[] = {
|
const char* g_shader_paths[] = {
|
||||||
"../graphics/shaders/shader.vert.num",
|
"../graphics/shaders/shader.vert.num",
|
||||||
"../graphics/shaders/shader.frag.num",
|
"../graphics/shaders/solid_objects.frag.num",
|
||||||
|
"../graphics/shaders/on_screen_text.frag.num",
|
||||||
};
|
};
|
||||||
|
|
||||||
static VkVertexInputBindingDescription get_binding_description()
|
static VkVertexInputBindingDescription get_binding_description()
|
||||||
|
|||||||
Reference in new issue
Block a user