Commit: 04bc828fb6cde003e65b3cceb25c24b0aa46250a
Author: Dalai Felinto
Date:   Tue Sep 20 14:43:13 2016 +0000
Branches: blender2.8
https://developer.blender.org/rB04bc828fb6cde003e65b3cceb25c24b0aa46250a

gawain update: immAttribute for 2i

===================================================================

M       source/blender/gpu/gawain/immediate.c
M       source/blender/gpu/gawain/immediate.h

===================================================================

diff --git a/source/blender/gpu/gawain/immediate.c 
b/source/blender/gpu/gawain/immediate.c
index 6ae531b..ec4797a 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 1854819..d33f680 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);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to