diff Renderer/Engine/fb.h @ 895:b662e9dd26b0 draft

add alignment of classes in SPU width and height are automatically set in frame buffer API
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 16 Jul 2010 17:23:49 +0900
parents 3bc98f6d31ff
children f3530a4100bf
line wrap: on
line diff
--- a/Renderer/Engine/fb.h	Fri Jul 16 00:13:45 2010 +0900
+++ b/Renderer/Engine/fb.h	Fri Jul 16 17:23:49 2010 +0900
@@ -14,8 +14,6 @@
 #include <iostream>
 using namespace std;
 
-#define DEVICE_NAME "/dev/fb0"
-#define DIV_BYTE 8
 
 /* function prototype */
 void send_current_error_msg(const char *ptr);
@@ -24,78 +22,15 @@
 /*
     Don't put real function in a header...
  */
-
-int get_fbdev_addr(void)
-{
-	int fd_framebuffer ;
-	struct fb_var_screeninfo vinfo;
-	struct fb_fix_screeninfo finfo;
-	long int screensize ;
-	//long int location;
-	char *fbptr ;
-	char tmp[DIV_BYTE*10];
-
-	//int x , y ;
+typedef struct screen_info {
 	int xres,yres,vbpp,line_len;
-	//unsigned short tcolor ;
-
-	/* 読み書き用にファイルを開く */
-	fd_framebuffer = open( DEVICE_NAME , O_RDWR);
-	if ( !fd_framebuffer ) {
-	    send_current_error_msg("Framebuffer device open error !");
-	    exit(1);
-	}
-	send_current_information("The framebuffer device was opened !");
-	
-	/* 固定スクリーン情報取得 */
-	if ( ioctl( fd_framebuffer , FBIOGET_FSCREENINFO , &finfo ) ) {
-	    send_current_error_msg("Fixed information not gotton !");
-	    exit(2);
-	}
+	char *fbptr;
+} ScreenInfo , *ScreenInfoPtr;
 
-	/* 変動スクリーン情報取得 */
-	if ( ioctl( fd_framebuffer , FBIOGET_VSCREENINFO , &vinfo ) ) {
-		send_current_error_msg("Variable information not gotton !");
-		exit(3);
-	}
-	xres = vinfo.xres ;
-	yres = vinfo.yres ;
-	vbpp = vinfo.bits_per_pixel ;
-	line_len = finfo.line_length ;
-	sprintf( tmp , "%d(pixel)x%d(line), %dbpp(bits per pixel)",xres,yres,vbpp);
-	send_current_information( tmp );
 
-	/* バイト単位でのスクリーンのサイズを計算 */
-	screensize = xres * yres * vbpp / DIV_BYTE ;
-
-	/* デバイスをメモリにマップする */
-	fbptr = (char *)mmap(0,screensize,PROT_READ | PROT_WRITE,MAP_SHARED,fd_framebuffer,0);
-	if ( (int)fbptr == -1 ) {
-		send_current_error_msg("Don't get framebuffer device to memory !");
-		exit(4);
-	}
-	send_current_information("The framebuffer device was mapped !");
-
-	printf("fb: 0x%x \n", (unsigned int)fbptr);
-	return (int)fbptr;
-	//munmap(fbptr,screensize);
-	//close(fd_framebuffer);
-	//return 0;
-}
-
-void send_current_error_msg(const char *ptr)
-{
-    fprintf( stderr , "%s\n" , ptr );
-}
-
-void send_current_information(const char *ptr)
-{
-    fprintf( stdout , "%s\n" , ptr );
-}
-#else /* !defined(__linux__) */
-int get_fbdev_addr(void) {return 0;}
-#endif /* defined(__linux__) */
-
-extern int get_fbdev_addr(void);
 
 #endif
+
+extern ScreenInfo get_fbdev_addr(void);
+
+#endif