OSDN Git Service

エラー処理追加 master
authorRoNor <ronoru@users.sourceforge.jp>
Wed, 19 May 2010 15:48:16 +0000 (00:48 +0900)
committerRoNor <ronoru@users.sourceforge.jp>
Wed, 19 May 2010 15:48:16 +0000 (00:48 +0900)
createRGBSurfaceFromに渡されるByteBufferがダイレクトバッファーでない場合にはエラー文を出力し、ネイティブ関数を呼び出さないように修正

build/sdl/SDL$.class
build/sdl/SDL.class
src/SDL.scala

index f0e1411..dd7dc25 100644 (file)
Binary files a/build/sdl/SDL$.class and b/build/sdl/SDL$.class differ
index d9df46e..f1ec075 100644 (file)
Binary files a/build/sdl/SDL.class and b/build/sdl/SDL.class differ
index 400e9fb..24806f1 100644 (file)
@@ -91,7 +91,15 @@ package sdl {
     def setPalette(surface:SDL_Surface, flags:Int, colors:Array[SDL_Color], firstcolor:Int, ncolors:Int):Int = return sdl.setPalette(surface, flags, colors, firstcolor, ncolors)
     def mapRGB(fmt:SDL_PixelFormat, r:Int, g:Int, b:Int):Int = return sdl.mapRGB(fmt, r, g, b);
     def createRGBSurface(flags:Int, width:Int, height:Int, bitsPerPixel:Int, Rmask:Int, Gmask:Int, Bmask:Int, Amask:Int):SDL_Surface = sdl.createRGBSurface(flags, width, height, bitsPerPixel, Rmask, Gmask, Bmask, Amask)
-    def createRGBSurfaceFrom(pixels:java.nio.ByteBuffer, width:Int, height:Int, depth:Int, pitch:Int, Rmask:Int, Gmask:Int, Bmask:Int, Amask:Int):SDL_Surface = sdl.createRGBSurfaceFrom(pixels, width, height, depth, pitch, Rmask, Gmask, Bmask, Amask)
+    def createRGBSurfaceFrom(pixels:java.nio.ByteBuffer, width:Int, height:Int, depth:Int, pitch:Int, Rmask:Int, Gmask:Int, Bmask:Int, Amask:Int):SDL_Surface = {
+      var ret:SDL_Surface = null
+      if(pixels.isDirect()){
+        ret = sdl.createRGBSurfaceFrom(pixels, width, height, depth, pitch, Rmask, Gmask, Bmask, Amask)
+      }else{
+        System.err.println("error: createRGBSurfaceFrom > pixels is not direct bytebuffer.")
+      }
+      return ret
+    }
     def freeSurface(surface:SDL_Surface):Unit  = sdl.freeSurface(surface)
     def lockSurface(surface:SDL_Surface):Int = return sdl.lockSurface(surface)
     def unlockSurface(surface:SDL_Surface):Unit = return sdl.unlockSurface(surface)