2 Copyright (c)2006-2007 - Brett Lajzer
4 See LICENSE for license information.
13 #include "funcs_draw.h"
16 // direct drawing functions
19 //internal function for drawing circles and ellipses
20 void drawCircle(GLenum style
, float x
, float y
, float rx
, float ry
, float r
, float g
, float b
, float a
){
21 glColor4f(r
, g
, b
, a
);
22 glDisable(GL_TEXTURE_RECTANGLE_ARB
);
24 glTranslatef(x
, y
, 0.0f
);
27 for(double t
= 0; t
< 2*3.14159265358979; t
+= 0.05) {
28 glVertex2f(rx
* cos(t
), ry
* sin(t
));
33 glColor3f(1.0f
, 1.0f
, 1.0f
);
34 glEnable(GL_TEXTURE_RECTANGLE_ARB
);
37 int l_draw_pixel(lua_State
*L
){
38 glColor4f(lua_tonumber(L
,3)/255.0, lua_tonumber(L
,4)/255.0, lua_tonumber(L
,5)/255.0, lua_tonumber(L
,6)/255.0);
39 glDisable(GL_TEXTURE_RECTANGLE_ARB
);
42 glVertex2f((float)lua_tonumber(L
,1), (float)lua_tonumber(L
,2));
45 glColor3f(1.0f
, 1.0f
, 1.0f
);
46 glEnable(GL_TEXTURE_RECTANGLE_ARB
);
50 int l_draw_line(lua_State
*L
){
51 float x1
= (float)lua_tonumber(L
,1);
52 float y1
= (float)lua_tonumber(L
,2);
53 float x2
= (float)lua_tonumber(L
,3);
54 float y2
= (float)lua_tonumber(L
,4);
56 glColor4f(lua_tonumber(L
,5)/255.0, lua_tonumber(L
,6)/255.0, lua_tonumber(L
,7)/255.0, lua_tonumber(L
,8)/255.0);
57 glDisable(GL_TEXTURE_RECTANGLE_ARB
);
64 glColor3f(1.0f
, 1.0f
, 1.0f
);
65 glEnable(GL_TEXTURE_RECTANGLE_ARB
);
69 int l_draw_rect(lua_State
*L
){
70 float x1
= (float)lua_tonumber(L
,1);
71 float y1
= (float)lua_tonumber(L
,2);
72 float x2
= (float)lua_tonumber(L
,3);
73 float y2
= (float)lua_tonumber(L
,4);
75 glColor4f(lua_tonumber(L
,5)/255.0, lua_tonumber(L
,6)/255.0, lua_tonumber(L
,7)/255.0, lua_tonumber(L
,8)/255.0);
76 glDisable(GL_TEXTURE_RECTANGLE_ARB
);
92 glColor3f(1.0f
, 1.0f
, 1.0f
);
93 glEnable(GL_TEXTURE_RECTANGLE_ARB
);
97 int l_draw_frect(lua_State
*L
){
98 float x1
= (float)lua_tonumber(L
,1);
99 float y1
= (float)lua_tonumber(L
,2);
100 float x2
= (float)lua_tonumber(L
,3);
101 float y2
= (float)lua_tonumber(L
,4);
103 glColor4f(lua_tonumber(L
,5)/255.0, lua_tonumber(L
,6)/255.0, lua_tonumber(L
,7)/255.0, lua_tonumber(L
,8)/255.0);
104 glDisable(GL_TEXTURE_RECTANGLE_ARB
);
113 glColor3f(1.0f
, 1.0f
, 1.0f
);
114 glEnable(GL_TEXTURE_RECTANGLE_ARB
);
118 int l_draw_circle(lua_State
*L
){
119 drawCircle(GL_LINE_LOOP
, (float)lua_tonumber(L
,1), (float)lua_tonumber(L
,2), (float)lua_tonumber(L
,3), (float)lua_tonumber(L
,3), lua_tonumber(L
,4)/255.0, lua_tonumber(L
,5)/255.0, lua_tonumber(L
,6)/255.0, lua_tonumber(L
,7)/255.0);
123 int l_draw_fcircle(lua_State
*L
){
124 drawCircle(GL_POLYGON
, (float)lua_tonumber(L
,1), (float)lua_tonumber(L
,2), (float)lua_tonumber(L
,3), (float)lua_tonumber(L
,3), lua_tonumber(L
,4)/255.0, lua_tonumber(L
,5)/255.0, lua_tonumber(L
,6)/255.0, lua_tonumber(L
,7)/255.0);
128 int l_draw_ellipse(lua_State
*L
){
129 drawCircle(GL_LINE_LOOP
, (float)lua_tonumber(L
,1), (float)lua_tonumber(L
,2), (float)lua_tonumber(L
,3), (float)lua_tonumber(L
,4), lua_tonumber(L
,5)/255.0, lua_tonumber(L
,6)/255.0, lua_tonumber(L
,7)/255.0, lua_tonumber(L
,8)/255.0);
133 int l_draw_fellipse(lua_State
*L
){
134 drawCircle(GL_POLYGON
, (float)lua_tonumber(L
,1), (float)lua_tonumber(L
,2), (float)lua_tonumber(L
,3), (float)lua_tonumber(L
,4), lua_tonumber(L
,5)/255.0, lua_tonumber(L
,6)/255.0, lua_tonumber(L
,7)/255.0, lua_tonumber(L
,8)/255.0);