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:
authorDalai Felinto <dfelinto@gmail.com>2016-09-20 17:43:13 +0300
committerDalai Felinto <dfelinto@gmail.com>2016-09-20 17:50:20 +0300
commit04bc828fb6cde003e65b3cceb25c24b0aa46250a (patch)
tree3fa9bfe37bf0bbc105119f120c6239bec9d7f647
parent6ebf5c18c396ab8f00000560b44b397cfa0cd018 (diff)
gawain update: immAttribute for 2i
-rw-r--r--source/blender/gpu/gawain/immediate.c32
-rw-r--r--source/blender/gpu/gawain/immediate.h6
2 files changed, 38 insertions, 0 deletions
diff --git a/source/blender/gpu/gawain/immediate.c b/source/blender/gpu/gawain/immediate.c
index 6ae531bf451..ec4797a1507 100644
--- a/source/blender/gpu/gawain/immediate.c
+++ b/source/blender/gpu/gawain/immediate.c
@@ -468,6 +468,26 @@ void immAttrib4f(unsigned attrib_id, float x, float y, float z, float w)
data[3] = w;
}
+void immAttrib2i(unsigned attrib_id, int x, int y)
+ {
+ Attrib* attrib = imm.vertex_format.attribs + attrib_id;
+
+#if TRUST_NO_ONE
+ assert(attrib_id < imm.vertex_format.attrib_ct);
+ assert(attrib->comp_type == GL_INT);
+ assert(attrib->comp_ct == 2);
+ assert(imm.vertex_idx < imm.vertex_ct);
+ assert(imm.primitive != PRIM_NONE); // make sure we're between a Begin/End pair
+#endif
+
+ setAttribValueBit(attrib_id);
+
+ int* data = (int*)(imm.vertex_data + attrib->offset);
+
+ data[0] = x;
+ data[1] = y;
+ }
+
void immAttrib3fv(unsigned attrib_id, const float data[3])
{
immAttrib3f(attrib_id, data[0], data[1], data[2]);
@@ -581,6 +601,12 @@ void immVertex3f(unsigned attrib_id, float x, float y, float z)
immEndVertex();
}
+void immVertex2i(unsigned attrib_id, int x, int y)
+ {
+ immAttrib2i(attrib_id, x, y);
+ immEndVertex();
+ }
+
void immVertex2fv(unsigned attrib_id, const float data[2])
{
immAttrib2f(attrib_id, data[0], data[1]);
@@ -604,6 +630,12 @@ void immUniform4f(const char* name, float x, float y, float z, float w)
glUniform4f(loc, x, y, z, w);
}
+void immVertex2iv(unsigned attrib_id, const int data[2])
+ {
+ immAttrib2i(attrib_id, data[0], data[1]);
+ immEndVertex();
+ }
+
void immUniformColor3ubv(const unsigned char rgb[3])
{
const float scale = 1.0f / 255.0f;
diff --git a/source/blender/gpu/gawain/immediate.h b/source/blender/gpu/gawain/immediate.h
index 1854819cca2..d33f6804084 100644
--- a/source/blender/gpu/gawain/immediate.h
+++ b/source/blender/gpu/gawain/immediate.h
@@ -41,6 +41,8 @@ void immAttrib2f(unsigned attrib_id, float x, float y);
void immAttrib3f(unsigned attrib_id, float x, float y, float z);
void immAttrib4f(unsigned attrib_id, float x, float y, float z, float w);
+void immAttrib2i(unsigned attrib_id, int x, int y);
+
void immAttrib3fv(unsigned attrib_id, const float data[3]);
void immAttrib4fv(unsigned attrib_id, const float data[4]);
@@ -56,9 +58,13 @@ void immEndVertex(void); // and move on to the next vertex
void immVertex2f(unsigned attrib_id, float x, float y);
void immVertex3f(unsigned attrib_id, float x, float y, float z);
+void immVertex2i(unsigned attrib_id, int x, int y);
+
void immVertex2fv(unsigned attrib_id, const float data[2]);
void immVertex3fv(unsigned attrib_id, const float data[3]);
+void immVertex2iv(unsigned attrib_id, const int data[2]);
+
// provide values that don't change for the entire draw call
void immUniform4f(const char* name, float x, float y, float z, float w);