[gtk+/wip/matthiasc/renderpasses: 3/6] Add an api to get the vertex data for a render pass
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/renderpasses: 3/6] Add an api to get the vertex data for a render pass
- Date: Thu, 28 Sep 2017 03:24:30 +0000 (UTC)
commit 0823c6de2ff6ffaa445342c5427151f2a04eb620
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Sep 27 20:55:14 2017 -0400
Add an api to get the vertex data for a render pass
gsk/gskprivate.h | 3 +++
gsk/gskvulkanrenderpass.c | 19 +++++++++++++++++++
gsk/gskvulkanrenderpassprivate.h | 4 +++-
gsk/gskvulkanrenderprivate.h | 4 ++--
4 files changed, 27 insertions(+), 3 deletions(-)
---
diff --git a/gsk/gskprivate.h b/gsk/gskprivate.h
index 8584be6..5d9f88c 100644
--- a/gsk/gskprivate.h
+++ b/gsk/gskprivate.h
@@ -10,6 +10,9 @@ void gsk_ensure_resources (void);
int pango_glyph_string_num_glyphs (PangoGlyphString *glyphs);
+typedef struct _GskVulkanRender GskVulkanRender;
+typedef struct _GskVulkanRenderPass GskVulkanRenderPass;
+
G_END_DECLS
#endif /* __GSK_PRIVATE_H__ */
diff --git a/gsk/gskvulkanrenderpass.c b/gsk/gskvulkanrenderpass.c
index 3cb7e66..022c08d 100644
--- a/gsk/gskvulkanrenderpass.c
+++ b/gsk/gskvulkanrenderpass.c
@@ -1124,6 +1124,25 @@ gsk_vulkan_render_pass_collect_vertex_data (GskVulkanRenderPass *self,
return n_bytes;
}
+GskVulkanBuffer *
+gsk_vulkan_render_pass_get_vertex_data (GskVulkanRenderPass *self,
+ GskVulkanRender *render)
+{
+ gsize n_bytes;
+ GskVulkanBuffer *buffer;
+ guchar *data;
+
+ n_bytes = gsk_vulkan_render_pass_count_vertex_data (self);
+ buffer = gsk_vulkan_buffer_new (self->vulkan, n_bytes);
+ data = gsk_vulkan_buffer_map (buffer);
+
+ gsk_vulkan_render_pass_collect_vertex_data (self, render, data, 0, n_bytes);
+
+ gsk_vulkan_buffer_unmap (buffer);
+
+ return buffer;
+}
+
void
gsk_vulkan_render_pass_reserve_descriptor_sets (GskVulkanRenderPass *self,
GskVulkanRender *render)
diff --git a/gsk/gskvulkanrenderpassprivate.h b/gsk/gskvulkanrenderpassprivate.h
index 56bc9ad..808ea88 100644
--- a/gsk/gskvulkanrenderpassprivate.h
+++ b/gsk/gskvulkanrenderpassprivate.h
@@ -6,10 +6,10 @@
#include "gsk/gskvulkanbufferprivate.h"
#include "gsk/gskvulkanrenderprivate.h"
+#include "gsk/gskprivate.h"
G_BEGIN_DECLS
-typedef struct _GskVulkanRenderPass GskVulkanRenderPass;
GskVulkanRenderPass * gsk_vulkan_render_pass_new (GdkVulkanContext *context);
void gsk_vulkan_render_pass_free (GskVulkanRenderPass *self);
@@ -30,6 +30,8 @@ gsize gsk_vulkan_render_pass_collect_vertex_data (GskVulk
guchar *data,
gsize offset,
gsize total);
+GskVulkanBuffer * gsk_vulkan_render_pass_get_vertex_data (GskVulkanRenderPass *self,
+ GskVulkanRender *render);
void gsk_vulkan_render_pass_reserve_descriptor_sets (GskVulkanRenderPass *self,
GskVulkanRender *render);
diff --git a/gsk/gskvulkanrenderprivate.h b/gsk/gskvulkanrenderprivate.h
index ed35019..4bd2484 100644
--- a/gsk/gskvulkanrenderprivate.h
+++ b/gsk/gskvulkanrenderprivate.h
@@ -6,6 +6,8 @@
#include "gsk/gskvulkanimageprivate.h"
#include "gsk/gskvulkanpipelineprivate.h"
+#include "gsk/gskvulkanrenderpassprivate.h"
+#include "gsk/gskprivate.h"
G_BEGIN_DECLS
@@ -50,8 +52,6 @@ typedef enum {
GSK_VULKAN_N_PIPELINES
} GskVulkanPipelineType;
-typedef struct _GskVulkanRender GskVulkanRender;
-
GskVulkanRender * gsk_vulkan_render_new (GskRenderer *renderer,
GdkVulkanContext *context);
void gsk_vulkan_render_free (GskVulkanRender *self);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]