diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2016-10-14 02:26:55 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2016-10-14 21:57:38 +0300 |
commit | 11653f85ff0c1050022f37692640db2f7e4578dc (patch) | |
tree | b7ab80ad9c8ac1bd2fe3270cd3d2228da99ffbf5 /source | |
parent | 34dc660a7669812a2f1ed829cecd273d4e859d24 (diff) |
Immediate mode: new util functions (imm_cpack and imm_draw_line_box)
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/include/BIF_glutil.h | 18 | ||||
-rw-r--r-- | source/blender/editors/screen/glutil.c | 20 |
2 files changed, 38 insertions, 0 deletions
diff --git a/source/blender/editors/include/BIF_glutil.h b/source/blender/editors/include/BIF_glutil.h index a5a12005a54..30718ccd18d 100644 --- a/source/blender/editors/include/BIF_glutil.h +++ b/source/blender/editors/include/BIF_glutil.h @@ -105,6 +105,24 @@ void imm_draw_lined_circle(unsigned pos, float x, float y, float radius, int nse void imm_draw_filled_circle(unsigned pos, float x, float y, float radius, int nsegments); /** +* Draw a lined box. +* +* \param pos The vertex attribute number for position. +* \param x1 left. +* \param y1 bottom. +* \param x2 right. +* \param y2 top. +*/ +void imm_draw_line_box(unsigned pos, float x1, float y1, float x2, float y2); + +/** +* Pack color into 3 bytes +* +* \param x color. +*/ +void imm_cpack(unsigned int x); + +/** * Returns a float value as obtained by glGetFloatv. * The param must cause only one value to be gotten from GL. */ diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c index 3e42587fdb9..2d89398bc63 100644 --- a/source/blender/editors/screen/glutil.c +++ b/source/blender/editors/screen/glutil.c @@ -68,6 +68,7 @@ void fdrawline(float x1, float y1, float x2, float y2) void fdrawbox(float x1, float y1, float x2, float y2) { + /* DEPRECATED: use imm_draw_line_box instead */ glBegin(GL_LINE_LOOP); glVertex2f(x1, y1); @@ -102,6 +103,7 @@ void sdrawline(int x1, int y1, int x2, int y2) void sdrawbox(int x1, int y1, int x2, int y2) { + /* DEPRECATED: use imm_draw_line_box instead */ glBegin(GL_LINE_LOOP); glVertex2i(x1, y1); @@ -203,6 +205,23 @@ 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_line_box(unsigned pos, float x1, float y1, float x2, float y2) +{ + immBegin(GL_LINE_LOOP, 4); + immVertex2f(pos, x1, y1); + immVertex2f(pos, x1, y2); + immVertex2f(pos, x2, y2); + immVertex2f(pos, x2, y1); + immEnd(); +} + +void imm_cpack(unsigned int x) +{ + immUniformColor3ub(((x)& 0xFF), + (((x) >> 8) & 0xFF), + (((x) >> 16) & 0xFF)); +} + float glaGetOneFloat(int param) { GLfloat v; @@ -874,6 +893,7 @@ void glaDrawImBuf_glsl_ctx(const bContext *C, ImBuf *ibuf, float x, float y, int void cpack(unsigned int x) { + /* DEPRECATED: use imm_cpack */ glColor3ub(( (x) & 0xFF), (((x) >> 8) & 0xFF), (((x) >> 16) & 0xFF)); |