Skip to content

Commit 86a6370

Browse files
Robert Alm Nilssonvoidanix
authored andcommitted
Remove drawnoview
Everything this function does is already done inside gl_drawframe. The only exception is that drawnoview calls drawnoviewtype instead of drawviewtype.
1 parent 7818c44 commit 86a6370

File tree

3 files changed

+70
-157
lines changed

3 files changed

+70
-157
lines changed

src/engine/engine.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,6 @@ extern void rendergame();
250250
extern void setavatarscale(float zscale);
251251
extern void renderavatar(bool early = false, bool project = false);
252252
extern void invalidatepostfx();
253-
extern void drawnoview();
254253
extern bool hasnoview();
255254
extern void gl_drawframe();
256255
extern void drawminimap();

src/engine/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,7 @@ void progress(float bar1, const char *text1, float bar2, const char *text2)
865865
}
866866

867867
progressing = true;
868-
loopi(2) { drawnoview(); swapbuffers(false); }
868+
loopi(2) { gl_drawframe(); swapbuffers(false); }
869869
progressing = false;
870870
}
871871

src/engine/rendergl.cpp

Lines changed: 69 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -1925,34 +1925,6 @@ void setcolormask(bool r, bool g, bool b)
19251925
colormask[2] = b ? GL_TRUE : GL_FALSE;
19261926
}
19271927

1928-
bool needsview(int v, int targtype)
1929-
{
1930-
switch(v)
1931-
{
1932-
case VW_NORMAL: return targtype == VP_CAMERA;
1933-
case VW_LEFTRIGHT:
1934-
case VW_CROSSEYED: return targtype == VP_LEFT || targtype == VP_RIGHT;
1935-
case VW_STEREO_BLEND:
1936-
case VW_STEREO_BLEND_REDCYAN: return targtype >= VP_LEFT && targtype <= VP_CAMERA;
1937-
case VW_STEREO_AVG:
1938-
case VW_STEREO_REDCYAN: return targtype == VP_LEFT || targtype == VP_RIGHT;
1939-
}
1940-
return false;
1941-
}
1942-
1943-
bool copyview(int v, int targtype)
1944-
{
1945-
switch(v)
1946-
{
1947-
case VW_LEFTRIGHT:
1948-
case VW_CROSSEYED: return targtype == VP_LEFT || targtype == VP_RIGHT;
1949-
case VW_STEREO_BLEND:
1950-
case VW_STEREO_BLEND_REDCYAN: return targtype == VP_RIGHT;
1951-
case VW_STEREO_AVG: return targtype == VP_LEFT;
1952-
}
1953-
return false;
1954-
}
1955-
19561928
bool clearview(int v, int targtype)
19571929
{
19581930
switch(v)
@@ -2022,64 +1994,6 @@ void drawnoviewtype(int targtype)
20221994
}
20231995
}
20241996

2025-
void drawnoview()
2026-
{
2027-
int copies = 0, oldcurtime = curtime;
2028-
loopi(VP_MAX) if(needsview(viewtype, i))
2029-
{
2030-
drawnoviewtype(i);
2031-
if(copyview(viewtype, i))
2032-
{
2033-
views[i].copy();
2034-
copies++;
2035-
}
2036-
curtime = 0;
2037-
}
2038-
if(needsview(viewtype, VP_CAMERA)) drawnoviewtype(VP_CAMERA);
2039-
curtime = oldcurtime;
2040-
2041-
if(!copies) return;
2042-
2043-
glDisable(GL_BLEND);
2044-
gle::colorf(1.f, 1.f, 1.f);
2045-
switch(viewtype)
2046-
{
2047-
case VW_LEFTRIGHT:
2048-
{
2049-
views[VP_LEFT].draw(0, 0, 0.5f, 1);
2050-
views[VP_RIGHT].draw(0.5f, 0, 0.5f, 1);
2051-
break;
2052-
}
2053-
case VW_CROSSEYED:
2054-
{
2055-
views[VP_LEFT].draw(0.5f, 0, 0.5f, 1);
2056-
views[VP_RIGHT].draw(0, 0, 0.5f, 1);
2057-
break;
2058-
}
2059-
case VW_STEREO_BLEND:
2060-
case VW_STEREO_BLEND_REDCYAN:
2061-
{
2062-
glEnable(GL_BLEND);
2063-
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
2064-
if(viewtype == VW_STEREO_BLEND) glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE);
2065-
gle::colorf(1.f, 1.f, 1.f, stereoblend); views[VP_RIGHT].draw(0, 0, 1, 1);
2066-
if(viewtype == VW_STEREO_BLEND) glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
2067-
glDisable(GL_BLEND);
2068-
break;
2069-
}
2070-
case VW_STEREO_AVG:
2071-
{
2072-
glEnable(GL_BLEND);
2073-
glBlendFunc(GL_ONE, GL_CONSTANT_COLOR);
2074-
glBlendColor_(0.f, 0.5f, 1.f, 1.f);
2075-
gle::colorf(1.f, 0.5f, 0.f);
2076-
views[VP_LEFT].draw(0, 0, 1, 1);
2077-
glDisable(GL_BLEND);
2078-
break;
2079-
}
2080-
}
2081-
}
2082-
20831997
void drawviewtype(int targtype)
20841998
{
20851999
updatedynlights();
@@ -2237,8 +2151,7 @@ bool hasnoview()
22372151

22382152
void gl_drawframe()
22392153
{
2240-
if(hasnoview()) drawnoview();
2241-
else
2154+
if(!hasnoview())
22422155
{
22432156
if(deferdrawtextures) drawtextures();
22442157

@@ -2263,88 +2176,89 @@ void gl_drawframe()
22632176
viewproject();
22642177
setcamprojmatrix();
22652178
game::project(w, h);
2179+
}
22662180

2267-
int oldcurtime = curtime;
2181+
void (*drawviewtype_fn)(int) = hasnoview() ? drawnoviewtype : drawviewtype;
2182+
int oldcurtime = curtime;
22682183

2269-
switch(viewtype)
2270-
{
2271-
case VW_NORMAL:
2272-
drawviewtype(VP_CAMERA);
2273-
break;
2184+
switch(viewtype)
2185+
{
2186+
case VW_NORMAL:
2187+
drawviewtype_fn(VP_CAMERA);
2188+
break;
22742189

2275-
case VW_LEFTRIGHT:
2276-
case VW_CROSSEYED:
2277-
drawviewtype(VP_LEFT);
2278-
views[VP_LEFT].copy();
2279-
curtime = 0;
2190+
case VW_LEFTRIGHT:
2191+
case VW_CROSSEYED:
2192+
drawviewtype_fn(VP_LEFT);
2193+
views[VP_LEFT].copy();
2194+
curtime = 0;
22802195

2281-
drawviewtype(VP_RIGHT);
2282-
views[VP_RIGHT].copy();
2283-
curtime = oldcurtime;
2196+
drawviewtype_fn(VP_RIGHT);
2197+
views[VP_RIGHT].copy();
2198+
curtime = oldcurtime;
22842199

2285-
glDisable(GL_BLEND);
2286-
gle::colorf(1.f, 1.f, 1.f);
2287-
if(viewtype == VW_LEFTRIGHT)
2288-
{
2289-
views[VP_LEFT].draw(0, 0, 0.5f, 1);
2290-
views[VP_RIGHT].draw(0.5f, 0, 0.5f, 1);
2291-
}
2292-
else if(viewtype == VW_CROSSEYED)
2293-
{
2294-
views[VP_LEFT].draw(0.5f, 0, 0.5f, 1);
2295-
views[VP_RIGHT].draw(0, 0, 0.5f, 1);
2296-
}
2200+
glDisable(GL_BLEND);
2201+
gle::colorf(1.f, 1.f, 1.f);
2202+
if(viewtype == VW_LEFTRIGHT)
2203+
{
2204+
views[VP_LEFT].draw(0, 0, 0.5f, 1);
2205+
views[VP_RIGHT].draw(0.5f, 0, 0.5f, 1);
2206+
}
2207+
else if(viewtype == VW_CROSSEYED)
2208+
{
2209+
views[VP_LEFT].draw(0.5f, 0, 0.5f, 1);
2210+
views[VP_RIGHT].draw(0, 0, 0.5f, 1);
2211+
}
22972212

2298-
break;
2213+
break;
22992214

2300-
case VW_STEREO_BLEND:
2301-
case VW_STEREO_BLEND_REDCYAN:
2302-
drawviewtype(VP_LEFT);
2303-
curtime = 0;
2215+
case VW_STEREO_BLEND:
2216+
case VW_STEREO_BLEND_REDCYAN:
2217+
drawviewtype_fn(VP_LEFT);
2218+
curtime = 0;
23042219

2305-
drawviewtype(VP_RIGHT);
2306-
views[VP_RIGHT].copy();
2307-
curtime = 0;
2220+
drawviewtype_fn(VP_RIGHT);
2221+
views[VP_RIGHT].copy();
2222+
curtime = 0;
23082223

2309-
drawviewtype(VP_CAMERA);
2310-
curtime = oldcurtime;
2224+
drawviewtype_fn(VP_CAMERA);
2225+
curtime = oldcurtime;
23112226

2312-
glDisable(GL_BLEND);
2313-
gle::colorf(1.f, 1.f, 1.f);
2314-
glEnable(GL_BLEND);
2315-
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
2316-
if(viewtype == VW_STEREO_BLEND) glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE);
2317-
gle::colorf(1.f, 1.f, 1.f, stereoblend); views[VP_RIGHT].draw(0, 0, 1, 1);
2318-
if(viewtype == VW_STEREO_BLEND) glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
2319-
glDisable(GL_BLEND);
2227+
glDisable(GL_BLEND);
2228+
gle::colorf(1.f, 1.f, 1.f);
2229+
glEnable(GL_BLEND);
2230+
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
2231+
if(viewtype == VW_STEREO_BLEND) glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE);
2232+
gle::colorf(1.f, 1.f, 1.f, stereoblend); views[VP_RIGHT].draw(0, 0, 1, 1);
2233+
if(viewtype == VW_STEREO_BLEND) glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
2234+
glDisable(GL_BLEND);
23202235

2321-
break;
2236+
break;
23222237

2323-
case VW_STEREO_AVG:
2324-
case VW_STEREO_REDCYAN:
2325-
drawviewtype(VP_LEFT);
2326-
if(viewtype == VW_STEREO_AVG)
2327-
{
2328-
views[VP_LEFT].copy();
2329-
}
2330-
curtime = 0;
2331-
drawviewtype(VP_RIGHT);
2332-
curtime = oldcurtime;
2238+
case VW_STEREO_AVG:
2239+
case VW_STEREO_REDCYAN:
2240+
drawviewtype_fn(VP_LEFT);
2241+
if(viewtype == VW_STEREO_AVG)
2242+
{
2243+
views[VP_LEFT].copy();
2244+
}
2245+
curtime = 0;
2246+
drawviewtype_fn(VP_RIGHT);
2247+
curtime = oldcurtime;
23332248

2249+
glDisable(GL_BLEND);
2250+
gle::colorf(1.f, 1.f, 1.f);
2251+
if(viewtype == VW_STEREO_AVG)
2252+
{
2253+
glEnable(GL_BLEND);
2254+
glBlendFunc(GL_ONE, GL_CONSTANT_COLOR);
2255+
glBlendColor_(0.f, 0.5f, 1.f, 1.f);
2256+
gle::colorf(1.f, 0.5f, 0.f);
2257+
views[VP_LEFT].draw(0, 0, 1, 1);
23342258
glDisable(GL_BLEND);
2335-
gle::colorf(1.f, 1.f, 1.f);
2336-
if(viewtype == VW_STEREO_AVG)
2337-
{
2338-
glEnable(GL_BLEND);
2339-
glBlendFunc(GL_ONE, GL_CONSTANT_COLOR);
2340-
glBlendColor_(0.f, 0.5f, 1.f, 1.f);
2341-
gle::colorf(1.f, 0.5f, 0.f);
2342-
views[VP_LEFT].draw(0, 0, 1, 1);
2343-
glDisable(GL_BLEND);
2344-
}
2259+
}
23452260

2346-
break;
2347-
}
2261+
break;
23482262
}
23492263
}
23502264

0 commit comments

Comments
 (0)