Diff for /np2/x11/gtk2/gtk_screen.c between versions 1.6 and 1.11

version 1.6, 2007/01/22 16:37:52 version 1.11, 2011/01/15 16:01:53
Line 33 Line 33
 #include "palettes.h"  #include "palettes.h"
 #include "scrndraw.h"  #include "scrndraw.h"
   
   #include "toolkit.h"
   
 #include "scrnmng.h"  #include "scrnmng.h"
   #include "mousemng.h"
   #include "soundmng.h"
   
 #include "gtk2/xnp2.h"  #include "gtk2/xnp2.h"
 #include "gtk2/gtk_drawmng.h"  #include "gtk2/gtk_drawmng.h"
Line 54  typedef struct { Line 58  typedef struct {
         RECT_T          rect;           /* drawarea に描画するサイズ */          RECT_T          rect;           /* drawarea に描画するサイズ */
   
         /* toolkit depend */          /* toolkit depend */
           GdkPixbuf       *drawsurf;
         GdkPixbuf       *backsurf;          GdkPixbuf       *backsurf;
         GdkPixbuf       *surface;          GdkPixbuf       *surface;
         double          ratio_w, ratio_h;          double          ratio_w, ratio_h;
Line 71  typedef struct { Line 76  typedef struct {
   
 static SCRNMNG scrnmng;  static SCRNMNG scrnmng;
 static DRAWMNG drawmng;  static DRAWMNG drawmng;
 static SCRNSTAT scrnstat;  static SCRNSTAT scrnstat = { 640, 400, 1, SCREEN_DEFMUL };
 static SCRNSURF scrnsurf;  static SCRNSURF scrnsurf;
 static int real_fullscreen;  static int real_fullscreen;
   
Line 332  scrnmng_initialize(void) Line 337  scrnmng_initialize(void)
         }          }
 }  }
   
 void  
 scrnmng_terminate(void)  
 {  
   
         if (real_fullscreen) {  
                 gtk_window_restore_mode(main_window);  
         }  
 }  
   
 BOOL  BOOL
 scrnmng_create(UINT8 mode)  scrnmng_create(UINT8 mode)
 {  {
Line 420  scrnmng_create(UINT8 mode) Line 416  scrnmng_create(UINT8 mode)
         gdk_pixbuf_fill(drawmng.surface, 0);          gdk_pixbuf_fill(drawmng.surface, 0);
   
         if (mode & SCRNMODE_FULLSCREEN) {          if (mode & SCRNMODE_FULLSCREEN) {
                   drawmng.drawsurf =
                       real_fullscreen ? drawmng.backsurf : drawmng.surface;
                 xmenu_hide();                  xmenu_hide();
                 if (real_fullscreen) {                  gtk_window_fullscreen_mode(main_window);
                         gtk_window_fullscreen_mode(main_window);  
                 } else {  
                         gtk_window_fullscreen(GTK_WINDOW(main_window));  
                 }  
         } else {          } else {
                 if (real_fullscreen) {                  drawmng.drawsurf = (scrnstat.multiple == SCREEN_DEFMUL)
                         gtk_window_restore_mode(main_window);                      ? drawmng.backsurf : drawmng.surface;
                 } else {                  gtk_window_restore_mode(main_window);
                         gtk_window_unfullscreen(GTK_WINDOW(main_window));  
                 }  
                 xmenu_show();                  xmenu_show();
         }          }
   
Line 454  scrnmng_destroy(void) Line 446  scrnmng_destroy(void)
         }          }
 }  }
   
   void
   scrnmng_fullscreen(int onoff)
   {
   
           if (onoff) {
                   gtk_window_fullscreen_mode(main_window);
           } else {
                   gtk_window_restore_mode(main_window);
           }
   }
   
 RGB16  RGB16
 scrnmng_makepal16(RGB32 pal32)  scrnmng_makepal16(RGB32 pal32)
 {  {
Line 465  void Line 468  void
 scrnmng_setwidth(int posx, int width)  scrnmng_setwidth(int posx, int width)
 {  {
   
         UNUSED(posx);  
   
         scrnstat.width = width;          scrnstat.width = width;
         renewal_client_size();          renewal_client_size();
 }  }
Line 475  void Line 476  void
 scrnmng_setheight(int posy, int height)  scrnmng_setheight(int posy, int height)
 {  {
   
         UNUSED(posy);  
   
         scrnstat.height = height;          scrnstat.height = height;
         renewal_client_size();          renewal_client_size();
 }  }
Line 496  scrnmng_setmultiple(int multiple) Line 495  scrnmng_setmultiple(int multiple)
   
         if (scrnstat.multiple != multiple) {          if (scrnstat.multiple != multiple) {
                 scrnstat.multiple = multiple;                  scrnstat.multiple = multiple;
                 renewal_client_size();                  if (!(drawmng.scrnmode & SCRNMODE_FULLSCREEN)) {
                           soundmng_stop();
                           mouse_running(MOUSE_STOP);
                           scrnmng_destroy();
                           if (scrnmng_create(scrnmode) != SUCCESS) {
                                   toolkit_widget_quit();
                                   return;
                           }
                           renewal_client_size();
                           scrndraw_redraw();
                           mouse_running(MOUSE_CONT);
                           soundmng_play();
                   }
         }          }
 }  }
   
Line 527  void Line 538  void
 scrnmng_surfunlock(const SCRNSURF *surf)  scrnmng_surfunlock(const SCRNSURF *surf)
 {  {
   
         UNUSED(surf);          if (drawmng.drawsurf == drawmng.surface) {
   
         if (((drawmng.scrnmode & SCRNMODE_FULLSCREEN) && real_fullscreen)  
          && !(drawmng.scrnmode & SCRNMODE_FULLSCREEN) && (scrnstat.multiple == SCREEN_DEFMUL)) {  
                 /* Nothing to do */  
         } else {  
                 gdk_pixbuf_scale(drawmng.backsurf, drawmng.surface,                  gdk_pixbuf_scale(drawmng.backsurf, drawmng.surface,
                     0, 0, drawmng.rect.right, drawmng.rect.bottom,                      0, 0, drawmng.rect.right, drawmng.rect.bottom,
                     0, 0, drawmng.ratio_w, drawmng.ratio_h,                      0, 0, drawmng.ratio_w, drawmng.ratio_h,
Line 546  void Line 552  void
 scrnmng_update(void)  scrnmng_update(void)
 {  {
         GdkDrawable *d = drawarea->window;          GdkDrawable *d = drawarea->window;
         GdkGC *gc = drawarea->style->fg_gc[GTK_WIDGET_STATE(drawarea)];          GdkGC *gc = drawarea->style->fg_gc[gtk_widget_get_state(drawarea)];
   
         if (scrnmng.palchanged) {          if (scrnmng.palchanged) {
                 scrnmng.palchanged = FALSE;                  scrnmng.palchanged = FALSE;
Line 572  scrnmng_update(void) Line 578  scrnmng_update(void)
                 }                  }
         }          }
   
         if (((drawmng.scrnmode & SCRNMODE_FULLSCREEN) && real_fullscreen)          gdk_draw_pixbuf(d, gc, drawmng.drawsurf,
          && !(drawmng.scrnmode & SCRNMODE_FULLSCREEN) && (scrnstat.multiple == SCREEN_DEFMUL)) {              0, 0,
                 gdk_draw_pixbuf(d, gc, drawmng.backsurf,              drawmng.scrn.left, drawmng.scrn.top,
                     0, 0,              drawmng.rect.right, drawmng.rect.bottom,
                     drawmng.scrn.left, drawmng.scrn.top,              GDK_RGB_DITHER_NORMAL, 0, 0);
                     drawmng.rect.right, drawmng.rect.bottom,  
                     GDK_RGB_DITHER_NORMAL, 0, 0);  
         } else {  
                 gdk_draw_pixbuf(d, gc, drawmng.surface,  
                     0, 0,  
                     drawmng.scrn.left, drawmng.scrn.top,  
                     drawmng.rect.right, drawmng.rect.bottom,  
                     GDK_RGB_DITHER_NORMAL, 0, 0);  
         }  
   
         drawmng.drawing = FALSE;          drawmng.drawing = FALSE;
 }  }

Removed from v.1.6  
changed lines
  Added in v.1.11


RetroPC.NET-CVS <cvs@retropc.net>