Make Screenshots over backbuffer; Implmented filtered mouse delta reading
This commit is contained in:
parent
9af74225ed
commit
d6e16c54d4
|
@ -1,5 +1,9 @@
|
||||||
D1X-Rebirth Changelog
|
D1X-Rebirth Changelog
|
||||||
|
|
||||||
|
20080521
|
||||||
|
--------
|
||||||
|
arch/ogl/gr.c, arch/sdl/mouse.c, main/game.h: Make Screenshots over backbuffer; Implmented filtered mouse delta reading
|
||||||
|
|
||||||
20080520
|
20080520
|
||||||
--------
|
--------
|
||||||
main/kconfig.c: Decreasing divisor for mouse axis reading - making mouse sensitivity practically much higher
|
main/kconfig.c: Decreasing divisor for mouse axis reading - making mouse sensitivity practically much higher
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "playsave.h"
|
#include "playsave.h"
|
||||||
#include "vers_id.h"
|
#include "vers_id.h"
|
||||||
|
#include "gr.h"
|
||||||
|
|
||||||
int gr_installed = 0;
|
int gr_installed = 0;
|
||||||
int gl_initialized=0;
|
int gl_initialized=0;
|
||||||
|
@ -585,8 +586,7 @@ void save_screen_shot(int automap_flag)
|
||||||
char savename[13+sizeof(SCRNS_DIR)];
|
char savename[13+sizeof(SCRNS_DIR)];
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
|
|
||||||
if (!GameArg.DbgGlReadPixelsOk)
|
if (!GameArg.DbgGlReadPixelsOk){
|
||||||
{
|
|
||||||
if (!automap_flag)
|
if (!automap_flag)
|
||||||
hud_message(MSGC_GAME_FEEDBACK,"glReadPixels not supported on your configuration");
|
hud_message(MSGC_GAME_FEEDBACK,"glReadPixels not supported on your configuration");
|
||||||
return;
|
return;
|
||||||
|
@ -602,7 +602,7 @@ void save_screen_shot(int automap_flag)
|
||||||
sprintf(savename, "%sscrn%04d.tga",SCRNS_DIR, savenum++);
|
sprintf(savename, "%sscrn%04d.tga",SCRNS_DIR, savenum++);
|
||||||
} while (PHYSFS_exists(savename));
|
} while (PHYSFS_exists(savename));
|
||||||
|
|
||||||
sprintf( message, "%s '%s'", TXT_DUMPING_SCREEN, savename );
|
sprintf( message, "%s 'scrn%04d.tga'", TXT_DUMPING_SCREEN, savenum-1 );
|
||||||
|
|
||||||
if (!automap_flag)
|
if (!automap_flag)
|
||||||
hud_message(MSGC_GAME_FEEDBACK,message);
|
hud_message(MSGC_GAME_FEEDBACK,message);
|
||||||
|
@ -613,12 +613,13 @@ void save_screen_shot(int automap_flag)
|
||||||
render_frame(0);
|
render_frame(0);
|
||||||
gr_set_curfont(MEDIUM2_FONT);
|
gr_set_curfont(MEDIUM2_FONT);
|
||||||
gr_printf(SWIDTH-FSPACX(92),SHEIGHT-LINE_SPACING,"DXX-Rebirth\n");
|
gr_printf(SWIDTH-FSPACX(92),SHEIGHT-LINE_SPACING,"DXX-Rebirth\n");
|
||||||
glReadBuffer(GL_BACK);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
glReadBuffer(GL_FRONT);
|
game_do_render_frame(0);
|
||||||
}
|
}
|
||||||
|
ogl_do_palfx();
|
||||||
|
glReadBuffer(GL_BACK);
|
||||||
buf = d_malloc(grd_curscreen->sc_w*grd_curscreen->sc_h*3);
|
buf = d_malloc(grd_curscreen->sc_w*grd_curscreen->sc_h*3);
|
||||||
write_bmp(savename,grd_curscreen->sc_w,grd_curscreen->sc_h,buf);
|
write_bmp(savename,grd_curscreen->sc_w,grd_curscreen->sc_h,buf);
|
||||||
d_free(buf);
|
d_free(buf);
|
||||||
|
|
|
@ -120,19 +120,29 @@ void mouse_get_pos( int *x, int *y, int *z )
|
||||||
|
|
||||||
void mouse_get_delta( int *dx, int *dy, int *dz )
|
void mouse_get_delta( int *dx, int *dy, int *dz )
|
||||||
{
|
{
|
||||||
|
static int old_delta_x = 0, old_delta_y = 0, old_delta_z = 0;
|
||||||
|
|
||||||
Mouse.delta_time += FrameTime;
|
Mouse.delta_time += FrameTime;
|
||||||
event_poll();
|
|
||||||
*dx = Mouse.delta_x;
|
|
||||||
*dy = Mouse.delta_y;
|
|
||||||
*dz = Mouse.delta_z;
|
|
||||||
// reset all ~33ms
|
|
||||||
if (Mouse.delta_time >= F1_0/30)
|
if (Mouse.delta_time >= F1_0/30)
|
||||||
{
|
{
|
||||||
Mouse.delta_x = 0;
|
SDL_GetRelativeMouseState( Mouse.delta_x, Mouse.delta_y );
|
||||||
Mouse.delta_y = 0;
|
*dz = old_delta_dz = Mouse.delta_z;
|
||||||
Mouse.delta_z = 0;
|
Mouse.delta_z = 0;
|
||||||
Mouse.delta_time = 0;
|
Mouse.delta_time = 0;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*dx = old_delta_dx;
|
||||||
|
*dy = old_delta_dy;
|
||||||
|
*dz = old_delta_dz;
|
||||||
|
}
|
||||||
|
|
||||||
|
// filter delta
|
||||||
|
*dx = (Mouse.delta_x + old_delta_dx) * 0.5;
|
||||||
|
*dy = (Mouse.delta_y + old_delta_dy) * 0.5;
|
||||||
|
|
||||||
|
old_delta_dx = Mouse.delta_x;
|
||||||
|
old_delta_dy = Mouse.delta_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mouse_get_btns()
|
int mouse_get_btns()
|
||||||
|
|
|
@ -218,6 +218,7 @@ extern grs_canvas VR_screen_sub_pages[2]; // Two sub pages of VRAM if paging is
|
||||||
extern grs_canvas *VR_offscreen_menu; // The offscreen data buffer for menus
|
extern grs_canvas *VR_offscreen_menu; // The offscreen data buffer for menus
|
||||||
|
|
||||||
void game_init_render_buffers (int render_max_w, int render_max_h, int render_method);
|
void game_init_render_buffers (int render_max_w, int render_max_h, int render_method);
|
||||||
|
void game_do_render_frame(int flip);
|
||||||
extern int Allow_primary_cycle;
|
extern int Allow_primary_cycle;
|
||||||
extern int Allow_secondary_cycle;
|
extern int Allow_secondary_cycle;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue