Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpu/intern/gpu_element.c')
-rw-r--r--source/blender/gpu/intern/gpu_element.c120
1 files changed, 60 insertions, 60 deletions
diff --git a/source/blender/gpu/intern/gpu_element.c b/source/blender/gpu/intern/gpu_element.c
index 596530a6ff4..1b5a08ac35c 100644
--- a/source/blender/gpu/intern/gpu_element.c
+++ b/source/blender/gpu/intern/gpu_element.c
@@ -23,10 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/gpu/intern/gwn_element.c
+/** \file blender/gpu/intern/gpu_element.c
* \ingroup gpu
*
- * Gawain element list (AKA index buffer)
+ * GPU element list (AKA index buffer)
*/
#include "GPU_element.h"
@@ -36,23 +36,23 @@
#define KEEP_SINGLE_COPY 1
-static GLenum convert_index_type_to_gl(Gwn_IndexBufType type)
+static GLenum convert_index_type_to_gl(GPUIndexBufType type)
{
static const GLenum table[] = {
- [GWN_INDEX_U8] = GL_UNSIGNED_BYTE, /* GL has this, Vulkan does not */
- [GWN_INDEX_U16] = GL_UNSIGNED_SHORT,
- [GWN_INDEX_U32] = GL_UNSIGNED_INT
+ [GPU_INDEX_U8] = GL_UNSIGNED_BYTE, /* GL has this, Vulkan does not */
+ [GPU_INDEX_U16] = GL_UNSIGNED_SHORT,
+ [GPU_INDEX_U32] = GL_UNSIGNED_INT
};
return table[type];
}
-uint GWN_indexbuf_size_get(const Gwn_IndexBuf* elem)
+uint GPU_indexbuf_size_get(const GPUIndexBuf* elem)
{
-#if GWN_TRACK_INDEX_RANGE
+#if GPU_TRACK_INDEX_RANGE
static const uint table[] = {
- [GWN_INDEX_U8] = sizeof(GLubyte), /* GL has this, Vulkan does not */
- [GWN_INDEX_U16] = sizeof(GLushort),
- [GWN_INDEX_U32] = sizeof(GLuint)
+ [GPU_INDEX_U8] = sizeof(GLubyte), /* GL has this, Vulkan does not */
+ [GPU_INDEX_U16] = sizeof(GLushort),
+ [GPU_INDEX_U32] = sizeof(GLuint)
};
return elem->index_len * table[elem->index_type];
#else
@@ -60,8 +60,8 @@ uint GWN_indexbuf_size_get(const Gwn_IndexBuf* elem)
#endif
}
-void GWN_indexbuf_init_ex(
- Gwn_IndexBufBuilder* builder, Gwn_PrimType prim_type,
+void GPU_indexbuf_init_ex(
+ GPUIndexBufBuilder* builder, GPUPrimType prim_type,
uint index_len, uint vertex_len, bool use_prim_restart)
{
builder->use_prim_restart = use_prim_restart;
@@ -72,20 +72,20 @@ void GWN_indexbuf_init_ex(
builder->data = calloc(builder->max_index_len, sizeof(uint));
}
-void GWN_indexbuf_init(Gwn_IndexBufBuilder* builder, Gwn_PrimType prim_type, uint prim_len, uint vertex_len)
+void GPU_indexbuf_init(GPUIndexBufBuilder* builder, GPUPrimType prim_type, uint prim_len, uint vertex_len)
{
uint verts_per_prim = 0;
switch (prim_type) {
- case GWN_PRIM_POINTS:
+ case GPU_PRIM_POINTS:
verts_per_prim = 1;
break;
- case GWN_PRIM_LINES:
+ case GPU_PRIM_LINES:
verts_per_prim = 2;
break;
- case GWN_PRIM_TRIS:
+ case GPU_PRIM_TRIS:
verts_per_prim = 3;
break;
- case GWN_PRIM_LINES_ADJ:
+ case GPU_PRIM_LINES_ADJ:
verts_per_prim = 4;
break;
default:
@@ -95,10 +95,10 @@ void GWN_indexbuf_init(Gwn_IndexBufBuilder* builder, Gwn_PrimType prim_type, uin
return;
}
- GWN_indexbuf_init_ex(builder, prim_type, prim_len * verts_per_prim, vertex_len, false);
+ GPU_indexbuf_init_ex(builder, prim_type, prim_len * verts_per_prim, vertex_len, false);
}
-void GWN_indexbuf_add_generic_vert(Gwn_IndexBufBuilder* builder, uint v)
+void GPU_indexbuf_add_generic_vert(GPUIndexBufBuilder* builder, uint v)
{
#if TRUST_NO_ONE
assert(builder->data != NULL);
@@ -108,58 +108,58 @@ void GWN_indexbuf_add_generic_vert(Gwn_IndexBufBuilder* builder, uint v)
builder->data[builder->index_len++] = v;
}
-void GWN_indexbuf_add_primitive_restart(Gwn_IndexBufBuilder* builder)
+void GPU_indexbuf_add_primitive_restart(GPUIndexBufBuilder* builder)
{
#if TRUST_NO_ONE
assert(builder->data != NULL);
assert(builder->index_len < builder->max_index_len);
assert(builder->use_prim_restart);
#endif
- builder->data[builder->index_len++] = GWN_PRIM_RESTART;
+ builder->data[builder->index_len++] = GPU_PRIM_RESTART;
}
-void GWN_indexbuf_add_point_vert(Gwn_IndexBufBuilder* builder, uint v)
+void GPU_indexbuf_add_point_vert(GPUIndexBufBuilder* builder, uint v)
{
#if TRUST_NO_ONE
- assert(builder->prim_type == GWN_PRIM_POINTS);
+ assert(builder->prim_type == GPU_PRIM_POINTS);
#endif
- GWN_indexbuf_add_generic_vert(builder, v);
+ GPU_indexbuf_add_generic_vert(builder, v);
}
-void GWN_indexbuf_add_line_verts(Gwn_IndexBufBuilder* builder, uint v1, uint v2)
+void GPU_indexbuf_add_line_verts(GPUIndexBufBuilder* builder, uint v1, uint v2)
{
#if TRUST_NO_ONE
- assert(builder->prim_type == GWN_PRIM_LINES);
+ assert(builder->prim_type == GPU_PRIM_LINES);
assert(v1 != v2);
#endif
- GWN_indexbuf_add_generic_vert(builder, v1);
- GWN_indexbuf_add_generic_vert(builder, v2);
+ GPU_indexbuf_add_generic_vert(builder, v1);
+ GPU_indexbuf_add_generic_vert(builder, v2);
}
-void GWN_indexbuf_add_tri_verts(Gwn_IndexBufBuilder* builder, uint v1, uint v2, uint v3)
+void GPU_indexbuf_add_tri_verts(GPUIndexBufBuilder* builder, uint v1, uint v2, uint v3)
{
#if TRUST_NO_ONE
- assert(builder->prim_type == GWN_PRIM_TRIS);
+ assert(builder->prim_type == GPU_PRIM_TRIS);
assert(v1 != v2 && v2 != v3 && v3 != v1);
#endif
- GWN_indexbuf_add_generic_vert(builder, v1);
- GWN_indexbuf_add_generic_vert(builder, v2);
- GWN_indexbuf_add_generic_vert(builder, v3);
+ GPU_indexbuf_add_generic_vert(builder, v1);
+ GPU_indexbuf_add_generic_vert(builder, v2);
+ GPU_indexbuf_add_generic_vert(builder, v3);
}
-void GWN_indexbuf_add_line_adj_verts(Gwn_IndexBufBuilder* builder, uint v1, uint v2, uint v3, uint v4)
+void GPU_indexbuf_add_line_adj_verts(GPUIndexBufBuilder* builder, uint v1, uint v2, uint v3, uint v4)
{
#if TRUST_NO_ONE
- assert(builder->prim_type == GWN_PRIM_LINES_ADJ);
+ assert(builder->prim_type == GPU_PRIM_LINES_ADJ);
assert(v2 != v3); /* only the line need diff indices */
#endif
- GWN_indexbuf_add_generic_vert(builder, v1);
- GWN_indexbuf_add_generic_vert(builder, v2);
- GWN_indexbuf_add_generic_vert(builder, v3);
- GWN_indexbuf_add_generic_vert(builder, v4);
+ GPU_indexbuf_add_generic_vert(builder, v1);
+ GPU_indexbuf_add_generic_vert(builder, v2);
+ GPU_indexbuf_add_generic_vert(builder, v3);
+ GPU_indexbuf_add_generic_vert(builder, v4);
}
-#if GWN_TRACK_INDEX_RANGE
+#if GPU_TRACK_INDEX_RANGE
/* Everything remains 32 bit while building to keep things simple.
* Find min/max after, then convert to smallest index type possible. */
@@ -174,7 +174,7 @@ static uint index_range(const uint values[], uint value_len, uint* min_out, uint
uint max_value = values[0];
for (uint i = 1; i < value_len; ++i) {
const uint value = values[i];
- if (value == GWN_PRIM_RESTART)
+ if (value == GPU_PRIM_RESTART)
continue;
else if (value < min_value)
min_value = value;
@@ -186,7 +186,7 @@ static uint index_range(const uint values[], uint value_len, uint* min_out, uint
return max_value - min_value;
}
-static void squeeze_indices_byte(Gwn_IndexBufBuilder *builder, Gwn_IndexBuf* elem)
+static void squeeze_indices_byte(GPUIndexBufBuilder *builder, GPUIndexBuf* elem)
{
const uint *values = builder->data;
const uint index_len = elem->index_len;
@@ -201,7 +201,7 @@ static void squeeze_indices_byte(Gwn_IndexBufBuilder *builder, Gwn_IndexBuf* ele
elem->min_index = 0;
elem->max_index -= base;
for (uint i = 0; i < index_len; ++i) {
- data[i] = (values[i] == GWN_PRIM_RESTART) ? 0xFF : (GLubyte)(values[i] - base);
+ data[i] = (values[i] == GPU_PRIM_RESTART) ? 0xFF : (GLubyte)(values[i] - base);
}
}
else {
@@ -212,7 +212,7 @@ static void squeeze_indices_byte(Gwn_IndexBufBuilder *builder, Gwn_IndexBuf* ele
}
}
-static void squeeze_indices_short(Gwn_IndexBufBuilder *builder, Gwn_IndexBuf* elem)
+static void squeeze_indices_short(GPUIndexBufBuilder *builder, GPUIndexBuf* elem)
{
const uint *values = builder->data;
const uint index_len = elem->index_len;
@@ -227,7 +227,7 @@ static void squeeze_indices_short(Gwn_IndexBufBuilder *builder, Gwn_IndexBuf* el
elem->min_index = 0;
elem->max_index -= base;
for (uint i = 0; i < index_len; ++i) {
- data[i] = (values[i] == GWN_PRIM_RESTART) ? 0xFFFF : (GLushort)(values[i] - base);
+ data[i] = (values[i] == GPU_PRIM_RESTART) ? 0xFFFF : (GLushort)(values[i] - base);
}
}
else {
@@ -238,16 +238,16 @@ static void squeeze_indices_short(Gwn_IndexBufBuilder *builder, Gwn_IndexBuf* el
}
}
-#endif /* GWN_TRACK_INDEX_RANGE */
+#endif /* GPU_TRACK_INDEX_RANGE */
-Gwn_IndexBuf* GWN_indexbuf_build(Gwn_IndexBufBuilder* builder)
+GPUIndexBuf* GPU_indexbuf_build(GPUIndexBufBuilder* builder)
{
- Gwn_IndexBuf* elem = calloc(1, sizeof(Gwn_IndexBuf));
- GWN_indexbuf_build_in_place(builder, elem);
+ GPUIndexBuf* elem = calloc(1, sizeof(GPUIndexBuf));
+ GPU_indexbuf_build_in_place(builder, elem);
return elem;
}
-void GWN_indexbuf_build_in_place(Gwn_IndexBufBuilder* builder, Gwn_IndexBuf* elem)
+void GPU_indexbuf_build_in_place(GPUIndexBufBuilder* builder, GPUIndexBuf* elem)
{
#if TRUST_NO_ONE
assert(builder->data != NULL);
@@ -255,7 +255,7 @@ void GWN_indexbuf_build_in_place(Gwn_IndexBufBuilder* builder, Gwn_IndexBuf* ele
elem->index_len = builder->index_len;
elem->use_prim_restart = builder->use_prim_restart;
-#if GWN_TRACK_INDEX_RANGE
+#if GPU_TRACK_INDEX_RANGE
uint range = index_range(builder->data, builder->index_len, &elem->min_index, &elem->max_index);
/* count the primitive restart index. */
@@ -264,29 +264,29 @@ void GWN_indexbuf_build_in_place(Gwn_IndexBufBuilder* builder, Gwn_IndexBuf* ele
}
if (range <= 0xFF) {
- elem->index_type = GWN_INDEX_U8;
+ elem->index_type = GPU_INDEX_U8;
squeeze_indices_byte(builder, elem);
}
else if (range <= 0xFFFF) {
- elem->index_type = GWN_INDEX_U16;
+ elem->index_type = GPU_INDEX_U16;
squeeze_indices_short(builder, elem);
}
else {
- elem->index_type = GWN_INDEX_U32;
+ elem->index_type = GPU_INDEX_U32;
elem->base_index = 0;
}
elem->gl_index_type = convert_index_type_to_gl(elem->index_type);
#endif
if (elem->vbo_id == 0) {
- elem->vbo_id = GWN_buf_id_alloc();
+ elem->vbo_id = GPU_buf_id_alloc();
}
/* send data to GPU */
/* GL_ELEMENT_ARRAY_BUFFER changes the state of the last VAO bound,
* so we use the GL_ARRAY_BUFFER here to create a buffer without
* interfering in the VAO state. */
glBindBuffer(GL_ARRAY_BUFFER, elem->vbo_id);
- glBufferData(GL_ARRAY_BUFFER, GWN_indexbuf_size_get(elem), builder->data, GL_STATIC_DRAW);
+ glBufferData(GL_ARRAY_BUFFER, GPU_indexbuf_size_get(elem), builder->data, GL_STATIC_DRAW);
/* discard builder (one-time use) */
free(builder->data);
@@ -294,15 +294,15 @@ void GWN_indexbuf_build_in_place(Gwn_IndexBufBuilder* builder, Gwn_IndexBuf* ele
/* other fields are safe to leave */
}
-void GWN_indexbuf_use(Gwn_IndexBuf* elem)
+void GPU_indexbuf_use(GPUIndexBuf* elem)
{
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elem->vbo_id);
}
-void GWN_indexbuf_discard(Gwn_IndexBuf* elem)
+void GPU_indexbuf_discard(GPUIndexBuf* elem)
{
if (elem->vbo_id) {
- GWN_buf_id_free(elem->vbo_id);
+ GPU_buf_id_free(elem->vbo_id);
}
free(elem);
}