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:
authorMike Erwin <significant.bit@gmail.com>2016-10-20 21:33:32 +0300
committerMike Erwin <significant.bit@gmail.com>2016-10-20 21:33:32 +0300
commit4ea6917468ec82c966a2f67db0b0b6f375d8d9d4 (patch)
treee0cf3d527fd3ca4cb7fbc653a5adfaadeb7ad947 /source/blender/editors/screen/glutil.c
parentc6abbb40ad8e62a74c992ca02b8bc85171b6af8e (diff)
OpenGL: box & circle outline functions that work with 3D position (z=0)
New immediate mode API is strict about attribute formats. These new functions make existing code easier to port. Supports T49043
Diffstat (limited to 'source/blender/editors/screen/glutil.c')
-rw-r--r--source/blender/editors/screen/glutil.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c
index a7e8c210335..b64152b111b 100644
--- a/source/blender/editors/screen/glutil.c
+++ b/source/blender/editors/screen/glutil.c
@@ -203,6 +203,17 @@ void imm_draw_filled_circle(unsigned pos, float x, float y, float rad, int nsegm
imm_draw_circle(GL_TRIANGLE_FAN, pos, x, y, rad, nsegments);
}
+void imm_draw_lined_circle_3D(unsigned pos, float x, float y, float rad, int nsegments)
+{
+ immBegin(GL_LINE_LOOP, nsegments);
+ for (int i = 0; i < nsegments; ++i) {
+ float angle = 2 * M_PI * ((float)i / (float)nsegments);
+ immVertex3f(pos, x + rad * cosf(angle),
+ y + rad * sinf(angle), 0.0f);
+ }
+ immEnd();
+}
+
void imm_draw_line_box(unsigned pos, float x1, float y1, float x2, float y2)
{
immBegin(GL_LINE_LOOP, 4);
@@ -213,6 +224,17 @@ void imm_draw_line_box(unsigned pos, float x1, float y1, float x2, float y2)
immEnd();
}
+void imm_draw_line_box_3D(unsigned pos, float x1, float y1, float x2, float y2)
+{
+ /* use this version when VertexFormat has a vec3 position */
+ immBegin(GL_LINE_LOOP, 4);
+ immVertex3f(pos, x1, y1, 0.0f);
+ immVertex3f(pos, x1, y2, 0.0f);
+ immVertex3f(pos, x2, y2, 0.0f);
+ immVertex3f(pos, x2, y1, 0.0f);
+ immEnd();
+}
+
void imm_cpack(unsigned int x)
{
immUniformColor3ub(((x)& 0xFF),