diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-10-07 15:32:54 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-10-07 15:32:54 +0000 |
| commit | 982db98faec1ba28ff74fdd594ced77e4197cc02 (patch) | |
| tree | 6ac32c6bd44dcf11cff6fffd8e7a5488f922e788 /src/engine | |
| parent | f055f15ae7ef67069d51251b43c8bda22622018d (diff) | |
| download | zcatch-982db98faec1ba28ff74fdd594ced77e4197cc02.tar.gz zcatch-982db98faec1ba28ff74fdd594ced77e4197cc02.zip | |
added sniperscope.. press F to test
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/client/gfx.c | 46 | ||||
| -rw-r--r-- | src/engine/interface.h | 9 | ||||
| -rw-r--r-- | src/engine/server/server.c | 5 |
3 files changed, 52 insertions, 8 deletions
diff --git a/src/engine/client/gfx.c b/src/engine/client/gfx.c index c34ac0cb..f30e5099 100644 --- a/src/engine/client/gfx.c +++ b/src/engine/client/gfx.c @@ -146,7 +146,7 @@ int gfx_init() } else { - int result = glfwOpenWindow(screen_width, screen_height, 0, 0, 0, 0, 0, 0, GLFW_WINDOW); + int result = glfwOpenWindow(screen_width, screen_height, 0, 0, 0, 0, 24, 0, GLFW_WINDOW); if(result != GL_TRUE) { dbg_msg("game", "failed to create gl context"); @@ -154,6 +154,9 @@ int gfx_init() } } + glGetIntegerv(GL_DEPTH_BITS, &i); + dbg_msg("gfx", "depthbits = %d", i); + glfwSetWindowTitle("Teewars"); /* We don't want to see the window when we run the stress testing */ @@ -176,8 +179,11 @@ int gfx_init() /* set some default settings */ glEnable(GL_BLEND); + glDisable(GL_CULL_FACE); + glDisable(GL_DEPTH_TEST); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); + gfx_mask_op(MASK_NONE, 0); /* Set all z to -5.0f */ for (i = 0; i < vertex_buffer_size; i++) @@ -204,6 +210,36 @@ int gfx_init() return 1; } +void gfx_clear_mask(int fill) +{ + /*if(fill) + glClearDepth(0.0f); + else*/ + + int i; + glGetIntegerv(GL_DEPTH_WRITEMASK, &i); + glDepthMask(GL_TRUE); + glClearDepth(0.0f); + glClear(GL_DEPTH_BUFFER_BIT); + glDepthMask(i); +} + +void gfx_mask_op(int mask, int write) +{ + glEnable(GL_DEPTH_TEST); + + if(write) + glDepthMask(GL_TRUE); + else + glDepthMask(GL_FALSE); + + if(mask == MASK_NONE) + glDepthFunc(GL_ALWAYS); + else if(mask == MASK_SET) + glDepthFunc(GL_LEQUAL); + else if(mask == MASK_ZERO) + glDepthFunc(GL_NOTEQUAL); +} int gfx_window_active() { @@ -689,13 +725,13 @@ void gfx_quads_draw_freeform( vertices[num_vertices + 2].pos.x = x3; vertices[num_vertices + 2].pos.y = y3; - vertices[num_vertices + 2].tex = texture[2]; - vertices[num_vertices + 2].color = color[2]; + vertices[num_vertices + 2].tex = texture[3]; + vertices[num_vertices + 2].color = color[3]; vertices[num_vertices + 3].pos.x = x2; vertices[num_vertices + 3].pos.y = y2; - vertices[num_vertices + 3].tex = texture[3]; - vertices[num_vertices + 3].color = color[3]; + vertices[num_vertices + 3].tex = texture[2]; + vertices[num_vertices + 3].color = color[2]; draw_quad(); } diff --git a/src/engine/interface.h b/src/engine/interface.h index af892dba..9f0ee144 100644 --- a/src/engine/interface.h +++ b/src/engine/interface.h @@ -21,6 +21,11 @@ enum IMG_RGB=0, IMG_RGBA=1, + MASK_NONE=0, + MASK_SET, + MASK_ZERO, + + CLIENTSTATE_OFFLINE=0, CLIENTSTATE_CONNECTING, CLIENTSTATE_LOADING, @@ -826,6 +831,10 @@ void gfx_lines_begin(); void gfx_lines_draw(float x0, float y0, float x1, float y1); void gfx_lines_end(); +void gfx_mask_op(int mask, int write); +void gfx_clear_mask(int fill); + + /* server snap id */ int snap_new_id(); void snap_free_id(int id); diff --git a/src/engine/server/server.c b/src/engine/server/server.c index 721c345b..afbcc0dd 100644 --- a/src/engine/server/server.c +++ b/src/engine/server/server.c @@ -765,13 +765,12 @@ static int server_run() { if(config.debug) { - dbg_msg("server", "sim=%.02fms snap=%.02fms net=%.02fms total=%.02fms load=%.02f%% ids=%d/%d", + dbg_msg("server", "sim=%.02fms snap=%.02fms net=%.02fms total=%.02fms load=%.02f%%", (simulationtime/reportinterval)/(double)time_freq()*1000, (snaptime/reportinterval)/(double)time_freq()*1000, (networktime/reportinterval)/(double)time_freq()*1000, (totaltime/reportinterval)/(double)time_freq()*1000, - (totaltime)/reportinterval/(double)time_freq()*100.0f, - snap_id_inusage, snap_id_usage); + (totaltime)/reportinterval/(double)time_freq()*100.0f); } simulationtime = 0; |