1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
/*
* gulkan
* Copyright 2020 Collabora Ltd.
* Author: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
* SPDX-License-Identifier: MIT
*/
#ifndef MODEL_RENDERER_H_
#define MODEL_RENDERER_H_
#include <glib-object.h>
#include <gulkan.h>
G_BEGIN_DECLS
#define MODEL_TYPE_RENDERER model_renderer_get_type()
G_DECLARE_DERIVABLE_TYPE (ModelRenderer, model_renderer,
MODEL, RENDERER, GulkanSwapchainRenderer)
struct _ModelRendererClass
{
GulkanSwapchainRendererClass parent;
void
(*init_draw_cmd) (ModelRenderer *self,
VkCommandBuffer cmd_buffer);
};
G_END_DECLS
typedef struct
{
float mv_matrix[16];
float mvp_matrix[16];
float normal_matrix[12];
} Transformation;
typedef struct {
const gchar *vert;
const gchar *frag;
} ShaderResources;
gboolean
model_renderer_initialize (ModelRenderer *self,
VkSurfaceKHR surface,
VkClearColorValue clear_color,
ShaderResources *resources);
void
model_renderer_update_ubo (ModelRenderer *self, gpointer ubo);
#endif /* MODEL_RENDERER_H_ */
|