lib/gamnit: move `Texture::checker` to its own class to fix loading
authorAlexis Laferrière <alexis.laf@xymus.net>
Sat, 16 Jan 2016 17:14:26 +0000 (12:14 -0500)
committerAlexis Laferrière <alexis.laf@xymus.net>
Sat, 16 Jan 2016 21:05:19 +0000 (16:05 -0500)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

lib/gamnit/textures.nit

index 874fb5e..e29b71e 100644 (file)
@@ -23,24 +23,6 @@ abstract class Texture
        # Prepare a texture located at `path` within the `assets` folder
        new (path: Text) do return new GamnitAssetTexture(path.to_s)
 
-       # Prepare and load a colorful small texture of 2x2 pixels
-       new checker
-       do
-               var pixels = [0xFFu8, 0x00u8, 0x00u8,
-                             0x00u8, 0xFFu8, 0x00u8,
-                             0x00u8, 0x00u8, 0xFFu8,
-                             0xFFu8, 0xFFu8, 0xFFu8]
-               var cpixels = new CByteArray.from(pixels)
-
-               var tex = new GamnitRootTexture
-               tex.width = 2.0
-               tex.height = 2.0
-               tex.load_from_pixels(cpixels.native_array, 2, 2, gl_RGB)
-
-               cpixels.destroy
-               return tex
-       end
-
        # Root texture of which `self` is derived
        fun root: GamnitRootTexture is abstract
 
@@ -80,6 +62,27 @@ abstract class Texture
        fun offset_bottom: Float do return 1.0
 end
 
+# Colorful small texture of 2x2 pixels
+class CheckerTexture
+       super GamnitRootTexture
+
+       redef fun load(force)
+       do
+               var pixels = [0xFFu8, 0x00u8, 0x00u8,
+                             0x00u8, 0xFFu8, 0x00u8,
+                             0x00u8, 0x00u8, 0xFFu8,
+                             0xFFu8, 0xFFu8, 0xFFu8]
+
+               var cpixels = new CByteArray.from(pixels)
+
+               width = 2.0
+               height = 2.0
+               load_from_pixels(cpixels.native_array, 2, 2, gl_RGB)
+
+               cpixels.destroy
+       end
+end
+
 # Texture with its own pixels
 class GamnitRootTexture
        super Texture