diff src/video/photon/SDL_photon.c @ 3384:04af265172f9

Continue working on 2D support in Photon.
author Mike Gorchak <lestat@i.com.ua>
date Mon, 12 Oct 2009 08:21:43 +0000
parents 90935231e9b6
children fff074de9675
line wrap: on
line diff
--- a/src/video/photon/SDL_photon.c	Sun Oct 11 18:45:39 2009 +0000
+++ b/src/video/photon/SDL_photon.c	Mon Oct 12 08:21:43 2009 +0000
@@ -382,6 +382,7 @@
         didata->device_id = it;
 
         /* Query photon about graphics hardware caps and current video mode */
+        SDL_memset(&hwcaps, 0x00, sizeof(PgHWCaps_t));
         status = PgGetGraphicsHWCaps(&hwcaps);
         if (status != 0) {
             PhRect_t extent;
@@ -425,6 +426,17 @@
                 SDL_free(didata);
                 return -1;
             }
+
+            /* Get current video mode 2D capabilities */
+            didata->mode_2dcaps=0;
+            if ((modeinfo.mode_capabilities2 & PgVM_MODE_CAP2_ALPHA_BLEND)==PgVM_MODE_CAP2_ALPHA_BLEND)
+            {
+               didata->mode_2dcaps|=SDL_VIDEO_CAP_ALPHA_BLEND;
+            }
+            if ((modeinfo.mode_capabilities2 & PgVM_MODE_CAP2_SCALED_BLIT)==PgVM_MODE_CAP2_SCALED_BLIT)
+            {
+               didata->mode_2dcaps|=SDL_VIDEO_CAP_SCALED_BLIT;
+            }
         }
 
         /* Setup current desktop mode for SDL */
@@ -749,6 +761,17 @@
     didata->current_mode = *mode;
     didata->current_mode.refresh_rate = refresh_rate;
 
+    /* Get current video mode 2D capabilities */
+    didata->mode_2dcaps=0;
+    if ((modeinfo.mode_capabilities2 & PgVM_MODE_CAP2_ALPHA_BLEND)==PgVM_MODE_CAP2_ALPHA_BLEND)
+    {
+       didata->mode_2dcaps|=SDL_VIDEO_CAP_ALPHA_BLEND;
+    }
+    if ((modeinfo.mode_capabilities2 & PgVM_MODE_CAP2_SCALED_BLIT)==PgVM_MODE_CAP2_SCALED_BLIT)
+    {
+       didata->mode_2dcaps|=SDL_VIDEO_CAP_SCALED_BLIT;
+    }
+
     return 0;
 }