File: model-renderer.h

package info (click to toggle)
gulkan 0.15.1-2.3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,248 kB
  • sloc: ansic: 8,108; xml: 67; makefile: 9
file content (52 lines) | stat: -rw-r--r-- 1,139 bytes parent folder | download | duplicates (3)
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_ */