Commit ee589c59 authored by Sam Hocevar's avatar Sam Hocevar

. support framebuffer

 . input clavier limit�e mais fonctionnelle
parent 665782c8
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
#SHELL = /bin/sh #SHELL = /bin/sh
# Video output settings # Video output settings
VIDEO=X11 #VIDEO=X11
#VIDEO=DGA (not yet supported) #VIDEO=DGA (not yet supported)
#VIDEO=FB VIDEO=FB
#VIDEO=GGI #VIDEO=GGI
#VIDEO=BEOS (not yet supported) #VIDEO=BEOS (not yet supported)
...@@ -89,6 +89,7 @@ CCFLAGS += -D_REENTRANT ...@@ -89,6 +89,7 @@ CCFLAGS += -D_REENTRANT
CCFLAGS += -D_GNU_SOURCE CCFLAGS += -D_GNU_SOURCE
# Optimizations : don't compile debug versions with them # Optimizations : don't compile debug versions with them
#CCFLAGS += -g
CCFLAGS += -O6 CCFLAGS += -O6
CCFLAGS += -ffast-math -funroll-loops -fargument-noalias-global CCFLAGS += -ffast-math -funroll-loops -fargument-noalias-global
CCFLAGS += -fomit-frame-pointer CCFLAGS += -fomit-frame-pointer
......
...@@ -73,14 +73,14 @@ ...@@ -73,14 +73,14 @@
*******************************************************************************/ *******************************************************************************/
/* General debugging support */ /* General debugging support */
#define DEBUG //#define DEBUG
/* Modules specific debugging - this will produce a lot of output, but can be /* Modules specific debugging - this will produce a lot of output, but can be
* usefull to track a bug */ * usefull to track a bug */
#define DEBUG_INTF /*#define DEBUG_INTF
#define DEBUG_INPUT #define DEBUG_INPUT
#define DEBUG_AUDIO #define DEBUG_AUDIO
#define DEBUG_VIDEO #define DEBUG_VIDEO*/
/* Debugging log file - if defined, a file can be used to store all messages. If /* Debugging log file - if defined, a file can be used to store all messages. If
* DEBUG_LOG_ONLY is defined, debug messages will only be printed to the log and * DEBUG_LOG_ONLY is defined, debug messages will only be printed to the log and
......
...@@ -67,6 +67,7 @@ typedef struct vout_sys_s ...@@ -67,6 +67,7 @@ typedef struct vout_sys_s
******************************************************************************/ ******************************************************************************/
static int FBOpenDisplay ( vout_thread_t *p_vout ); static int FBOpenDisplay ( vout_thread_t *p_vout );
static void FBCloseDisplay ( vout_thread_t *p_vout ); static void FBCloseDisplay ( vout_thread_t *p_vout );
static void FBBlankDisplay ( vout_thread_t *p_vout );
/****************************************************************************** /******************************************************************************
...@@ -146,7 +147,13 @@ void vout_SysDestroy( vout_thread_t *p_vout ) ...@@ -146,7 +147,13 @@ void vout_SysDestroy( vout_thread_t *p_vout )
int vout_SysManage( vout_thread_t *p_vout ) int vout_SysManage( vout_thread_t *p_vout )
{ {
/* XXX */ /* XXX */
if( p_vout->i_changes & VOUT_SIZE_CHANGE )
{
intf_DbgMsg("resizing window\n");
p_vout->i_changes &= ~VOUT_SIZE_CHANGE;
FBBlankDisplay( p_vout );
}
return 0; return 0;
} }
...@@ -160,12 +167,16 @@ void vout_SysDisplay( vout_thread_t *p_vout ) ...@@ -160,12 +167,16 @@ void vout_SysDisplay( vout_thread_t *p_vout )
{ {
/* Swap buffers */ /* Swap buffers */
//p_vout->p_sys->i_buffer_index = ++p_vout->p_sys->i_buffer_index & 1; //p_vout->p_sys->i_buffer_index = ++p_vout->p_sys->i_buffer_index & 1;
p_vout->p_sys->i_buffer_index = 0;
/* tout est bien affich, on peut changer les 2 crans */ /* tout est bien affich, on peut changer les 2 crans */
p_vout->p_sys->var_info.xoffset = 0;
p_vout->p_sys->var_info.yoffset = p_vout->p_sys->var_info.yoffset =
/*p_vout->p_sys->i_buffer_index ?*/ 0 /*: p_vout->p_sys->var_info.yres*/; 0;
//p_vout->p_sys->i_buffer_index ? 0 : p_vout->p_sys->var_info.yres;
ioctl( p_vout->p_sys->i_fb_dev, FBIOPUT_VSCREENINFO, &p_vout->p_sys->var_info ); //ioctl( p_vout->p_sys->i_fb_dev, FBIOPUT_VSCREENINFO, &p_vout->p_sys->var_info );
ioctl( p_vout->p_sys->i_fb_dev, FBIOPAN_DISPLAY, &p_vout->p_sys->var_info );
} }
/****************************************************************************** /******************************************************************************
...@@ -221,6 +232,7 @@ static int FBOpenDisplay( vout_thread_t *p_vout ) ...@@ -221,6 +232,7 @@ static int FBOpenDisplay( vout_thread_t *p_vout )
p_vout->p_sys->var_info.activate = FB_ACTIVATE_NXTOPEN; p_vout->p_sys->var_info.activate = FB_ACTIVATE_NXTOPEN;
p_vout->p_sys->var_info.xoffset = 0; p_vout->p_sys->var_info.xoffset = 0;
p_vout->p_sys->var_info.yoffset = 0; p_vout->p_sys->var_info.yoffset = 0;
fprintf(stderr, "ypanstep is %i\n", fix_info.ypanstep);
//??ask sam p_vout->p_sys->mode_info.sync = FB_SYNC_VERT_HIGH_ACT; //??ask sam p_vout->p_sys->mode_info.sync = FB_SYNC_VERT_HIGH_ACT;
//??? //???
if( ioctl( p_vout->p_sys->i_fb_dev, FBIOPUT_VSCREENINFO, &p_vout->p_sys->var_info ) ) if( ioctl( p_vout->p_sys->i_fb_dev, FBIOPUT_VSCREENINFO, &p_vout->p_sys->var_info ) )
...@@ -305,3 +317,13 @@ static void FBCloseDisplay( vout_thread_t *p_vout ) ...@@ -305,3 +317,13 @@ static void FBCloseDisplay( vout_thread_t *p_vout )
close( p_vout->p_sys->i_fb_dev ); close( p_vout->p_sys->i_fb_dev );
} }
/******************************************************************************
* FBBlankDisplay: render a blank screen
******************************************************************************
* This function is called by all other rendering functions when they arrive on
* a non blanked screen.
******************************************************************************/
static void FBBlankDisplay( vout_thread_t *p_vout )
{
memset( p_vout->p_sys->p_video, 0x00, 2*p_vout->p_sys->i_page_size );
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment