Fix gl_rect and OGL::fl_point #688

This commit is contained in:
Matthias Melcher 2023-03-18 20:14:39 +01:00
parent 5c482f9d9b
commit f9004352b4
2 changed files with 14 additions and 8 deletions

View File

@ -31,9 +31,15 @@
// --- line and polygon drawing with integer coordinates
void Fl_OpenGL_Graphics_Driver::point(int x, int y) {
if (line_width_ == 1.0f) {
glBegin(GL_POINTS);
glVertex2f(x+0.5f, y+0.5f);
glEnd();
} else {
float offset = line_width_ / 2.0f;
float xx = x+0.5f, yy = y+0.5f;
glRectf(xx-offset, yy-offset, xx+offset, yy+offset);
}
}
void Fl_OpenGL_Graphics_Driver::rect(int x, int y, int w, int h) {

View File

@ -216,12 +216,12 @@ void gl_measure(const char* str, int& x, int& y) {
void gl_rect(int x, int y, int w, int h) {
if (w < 0) {w = -w; x = x-w;}
if (h < 0) {h = -h; y = y-h;}
glBegin(GL_LINE_STRIP);
glVertex2i(x+w-1, y+h-1);
glVertex2i(x+w-1, y);
glBegin(GL_LINE_LOOP);
int r = x+w-1, b = y+h-1;
glVertex2i(r, b);
glVertex2i(r, y);
glVertex2i(x, y);
glVertex2i(x, y+h-1);
glVertex2i(x+w, y+h-1);
glVertex2i(x, b);
glEnd();
}