mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
Add internal drawlinergb function.
git-svn-id: https://svn.eduke32.com/eduke32@6260 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
517517a1bb
commit
4dbeb30907
2 changed files with 64 additions and 37 deletions
|
@ -1037,6 +1037,7 @@ void rotatesprite_(int32_t sx, int32_t sy, int32_t z, int16_t a, int16_t picnu
|
|||
int8_t dashade, char dapalnum, int32_t dastat, uint8_t daalpha, uint8_t dablend,
|
||||
int32_t cx1, int32_t cy1, int32_t cx2, int32_t cy2);
|
||||
void drawline256(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col);
|
||||
void drawlinergb(int32_t x1, int32_t y1, int32_t x2, int32_t y2, palette_t col);
|
||||
int32_t printext16(int32_t xpos, int32_t ypos, int16_t col, int16_t backcol,
|
||||
const char *name, char fontsize) ATTRIBUTE((nonnull(5)));
|
||||
void printext256(int32_t xpos, int32_t ypos, int16_t col, int16_t backcol,
|
||||
|
|
|
@ -121,47 +121,41 @@ char getpixel(int32_t x, int32_t y)
|
|||
//
|
||||
// drawline256
|
||||
//
|
||||
void drawline256(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col)
|
||||
#ifdef USE_OPENGL
|
||||
static void drawlinegl(int32_t x1, int32_t y1, int32_t x2, int32_t y2, palette_t p)
|
||||
{
|
||||
// setpolymost2dview(); // JBF 20040205: more efficient setup
|
||||
|
||||
bglViewport(0, 0, xres, yres);
|
||||
bglMatrixMode(GL_PROJECTION);
|
||||
bglLoadIdentity();
|
||||
bglOrtho(0, xres, yres, 0, -1, 1);
|
||||
if (getrendermode() == REND_POLYMER)
|
||||
{
|
||||
bglMatrixMode(GL_MODELVIEW);
|
||||
bglLoadIdentity();
|
||||
}
|
||||
|
||||
gloy1 = -1;
|
||||
bglDisable(GL_ALPHA_TEST);
|
||||
bglDisable(GL_DEPTH_TEST);
|
||||
bglDisable(GL_TEXTURE_2D);
|
||||
bglEnable(GL_BLEND); // When using line antialiasing, this is needed
|
||||
|
||||
bglBegin(GL_LINES);
|
||||
bglColor4ub(p.r, p.g, p.b, 255);
|
||||
bglVertex2f((float) x1 * (1.f/4096.f), (float) y1 * (1.f/4096.f));
|
||||
bglVertex2f((float) x2 * (1.f/4096.f), (float) y2 * (1.f/4096.f));
|
||||
|
||||
bglEnd();
|
||||
}
|
||||
#endif
|
||||
|
||||
static void drawlinepixels(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col)
|
||||
{
|
||||
int32_t dx, dy, i, j, inc, plc, daend;
|
||||
intptr_t p;
|
||||
|
||||
col = palookup[0][col];
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
if (getrendermode() >= REND_POLYMOST)
|
||||
{
|
||||
palette_t p = getpal(col);
|
||||
|
||||
// setpolymost2dview(); // JBF 20040205: more efficient setup
|
||||
|
||||
bglViewport(0, 0, xres, yres);
|
||||
bglMatrixMode(GL_PROJECTION);
|
||||
bglLoadIdentity();
|
||||
bglOrtho(0, xres, yres, 0, -1, 1);
|
||||
if (getrendermode() == REND_POLYMER)
|
||||
{
|
||||
bglMatrixMode(GL_MODELVIEW);
|
||||
bglLoadIdentity();
|
||||
}
|
||||
|
||||
gloy1 = -1;
|
||||
bglDisable(GL_ALPHA_TEST);
|
||||
bglDisable(GL_DEPTH_TEST);
|
||||
bglDisable(GL_TEXTURE_2D);
|
||||
bglEnable(GL_BLEND); // When using line antialiasing, this is needed
|
||||
|
||||
bglBegin(GL_LINES);
|
||||
bglColor4ub(p.r, p.g, p.b, 255);
|
||||
bglVertex2f((float) x1 * (1.f/4096.f), (float) y1 * (1.f/4096.f));
|
||||
bglVertex2f((float) x2 * (1.f/4096.f), (float) y2 * (1.f/4096.f));
|
||||
|
||||
bglEnd();
|
||||
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
dx = x2-x1; dy = y2-y1;
|
||||
if (dx >= 0)
|
||||
{
|
||||
|
@ -236,6 +230,38 @@ void drawline256(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col)
|
|||
}
|
||||
}
|
||||
|
||||
void drawlinergb(int32_t x1, int32_t y1, int32_t x2, int32_t y2, palette_t p)
|
||||
{
|
||||
#ifdef USE_OPENGL
|
||||
if (getrendermode() >= REND_POLYMOST)
|
||||
{
|
||||
drawlinegl(x1, y1, x2, y2, p);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
char const col = palookup[0][p.f];
|
||||
drawlinepixels(x1, y1, x2, y2, col);
|
||||
}
|
||||
|
||||
void drawline256(int32_t x1, int32_t y1, int32_t x2, int32_t y2, char col)
|
||||
{
|
||||
col = palookup[0][col];
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
if (getrendermode() >= REND_POLYMOST)
|
||||
{
|
||||
palette_t p = getpal(col);
|
||||
p.f = col;
|
||||
drawlinegl(x1, y1, x2, y2, p);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
drawlinepixels(x1, y1, x2, y2, col);
|
||||
}
|
||||
|
||||
|
||||
//static void attach_here() {}
|
||||
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue