Parcourir la source

little update

Ethosa il y a 3 ans
Parent
commit
d29944ec53

+ 27 - 22
examples/calculator/material_ui.nim

@@ -62,7 +62,7 @@ proc calculate(tree: TokenTree): float =
     result = parseFloat(t[0].token_value)
 
 Window("material ui calculator", ((64+32)*4)+16, 480)
-env.setBackgroundColor(Color("#FAFAFA"))
+env.background_color = Color("#FAFAFA")
 
 
 var
@@ -73,13 +73,15 @@ var
 
 build:
   - Button number_button:
-    call setStyle(style({color: "#EEEEEE"}))
-    call resize(64+32, 64)
-    call setTextFont(loadFont(standard_font_path, 24))
+    call:
+      setStyle(style({color: "#EEEEEE"}))
+      resize(64+32, 64)
+      setTextFont(loadFont(standard_font_path, 24))
   - Button operator_button:
-    call setStyle(style({color: "#F5F5F5"}))
-    call resize(64+32, 51.2f)
-    call setTextFont(loadFont(standard_font_path, 22))
+    call:
+      setStyle(style({color: "#F5F5F5"}))
+      resize(64+32, 51.2f)
+      setTextFont(loadFont(standard_font_path, 22))
 
 number_button.normal_background.setStyle(style({background-color: "#424242"}))
 number_button.hover_background.setStyle(style({background-color: "#616161"}))
@@ -101,28 +103,31 @@ build:
   - Scene main:
     - HBox hbox:
       separator: 0
-      call setPadding(8, 8, 8, 8)
-      call move(0, 200)
+      call:
+        setPadding(8, 8, 8, 8)
+        move(0, 200)
       - GridBox numbers:
         separator: 0
         call setRow(3)
       - Vbox operators:
         separator: 0
     - Control result_back:
-      call resize(((64+32)*4), 200)
-      call move(8, 8)
-      call setStyle(style({
-        background-color: "#4DD0E1",
-        shadow: true,
-        shadow-offset: "0 8"
-      }))
+      call:
+        resize(((64+32)*4), 200)
+        move(8, 8)
+        setStyle(style({
+          background-color: "#4DD0E1",
+          shadow: true,
+          shadow-offset: "0 8"
+        }))
       - Label text:
-        call setTextFont(loadFont(standard_font_path, 32))
-        call setTextColor(Color("#fff"))
-        call setTextAlign(1, 1, 1, 1)
-        call setAnchor(1, 1, 1, 1)
-        call setSizeAnchor(1, 0.5)
-        call setPadding(16, 16, 16, 16)
+        call:
+          setTextFont(loadFont(standard_font_path, 32))
+          setTextColor(Color("#fff"))
+          setTextAlign(1, 1, 1, 1)
+          setAnchor(1, 1, 1, 1)
+          setSizeAnchor(1, 0.5)
+          setPadding(16, 16, 16, 16)
 
 
 for i in 0..11:

+ 1 - 0
examples/roguelike/main.nim

@@ -22,6 +22,7 @@ build:
 
     # Player
     - KinematicBody2D player:
+      z_index: 1
       call move(300, 120)
       - Sprite player_sprite:
         call setTexture(charapter)

+ 7 - 5
src/nodesnim/core/font.nim

@@ -101,6 +101,9 @@ proc applyStyle*(symbol: StyleUnicode, style: cint, enabled: bool = true) =
   elif (symbol.style and style) != 0 and not enabled:
     symbol.style = symbol.style xor style
 
+proc clear*(text: StyleText) =
+  text.chars = @[]
+
 proc toUpper*(text: StyleText): StyleText =
   result = text.deepCopy()
   for i in result.chars:
@@ -319,9 +322,8 @@ proc render*(text: StyleText, size: Vector2Obj, align: AnchorObj) =
     text.texture.size.y = surface.h.float
 
     # OpenGL:
-    if text.texture.texture != 0'u32:
-      glDeleteTextures(1, addr text.texture.texture)
-    glGenTextures(1, addr text.texture.texture)
+    if text.texture.texture == 0'u32:
+      glGenTextures(1, addr text.texture.texture)
     glBindTexture(GL_TEXTURE_2D, text.texture.texture)
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
@@ -334,6 +336,7 @@ proc render*(text: StyleText, size: Vector2Obj, align: AnchorObj) =
     # free memory
     surface.freeSurface()
     surface = nil
+    echo text.texture.texture, ", ", text
   text.rendered = true
 
 proc renderTo*(text: StyleText, pos, size: Vector2Obj, align: AnchorObj) =
@@ -395,5 +398,4 @@ proc renderTo*(text: StyleText, pos, size: Vector2Obj, align: AnchorObj) =
 
 
 proc freeMemory*(text: StyleText) =
-  if text.texture.texture != 0'u32:
-    glDeleteTextures(1, addr text.texture.texture)
+  glDeleteTextures(1, addr text.texture.texture)

+ 4 - 1
src/nodesnim/core/image.nim

@@ -41,7 +41,6 @@ proc load*(file: string, x, y: var float, mode: Glenum = GL_RGB): Gluint =
 
   # free memory
   surface.freeSurface()
-
   textureid
 
 
@@ -56,3 +55,7 @@ proc load*(file: string, mode: Glenum = GL_RGB): GlTextureObj =
     textureid: Gluint
   textureid = load(file, x, y, mode)
   GlTextureObj(texture: textureid, size: Vector2(x, y))
+
+
+proc freeMemory*(self: var GlTextureObj) =
+  glDeleteTextures(1, addr self.texture)

+ 1 - 2
src/nodesnim/core/themes.nim

@@ -35,8 +35,7 @@ var
              "url_color": Color("#2a9afc")}.toTable())
   ]
 {.cast(noSideEffect).}:
-  var current_theme*: ThemeRef
-current_theme = themes[0].deepCopy()
+  var current_theme* = themes[0].deepCopy()
 
 proc addTheme*(theme: ThemeRef) =
   themes.add(theme)

+ 5 - 1
src/nodesnim/core/tileset.nim

@@ -31,14 +31,15 @@ proc TileSet*(img: string, tile_size: Vector2Obj, mode: Glenum = GL_RGB): TileSe
 
   glTexImage2D(GL_TEXTURE_2D, 0, mode.GLint, surface.w,  surface.h, 0, mode, GL_UNSIGNED_BYTE, surface.pixels)
   glBindTexture(GL_TEXTURE_2D, 0)
+
   result = TileSetObj(
     grid: tile_size,
     size: Vector2(surface.w.float, surface.h.float),
     texture: textureid
   )
-
   surface.freeSurface()
 
+
 proc draw*(self: TileSetObj, tilex, tiley, x, y, z: float) =
   ## Draws tile at position `tilex`,`tiley` to `x`,`y` position.
   if self.texture > 0:
@@ -62,3 +63,6 @@ proc draw*(self: TileSetObj, tilex, tiley, x, y, z: float) =
     glEnd()
     glBindTexture(GL_TEXTURE_2D, 0)
     glPopMatrix()
+
+proc freeMemory*(self: TileSetObj) =
+  glDeleteTextures(1, addr self.texture)

+ 0 - 1
src/nodesnim/nodescontrol/chart.nim

@@ -206,4 +206,3 @@ method draw*(self: ChartRef, w, h: GLfloat) =
 
 method addChartData*(self: ChartRef, chart_data: ChartData) {.base.} =
   self.data.add(chart_data)
-

BIN
tests/assets/canvas.png