summary refs log tree commit diff stats
path: root/tests/manyloc/named_argument_bug/tri_engine/gfx/tex.nim
blob: 282a1ac99a82b7047dcd2814651b193f93729af7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import
  tri_engine/gfx/gl/gl

type
  TTex* = object
    id*: GLuint

var gWhiteTex = TTex(id: 0)

proc setTexParams() =
  ?glTexParameteri(GLtexture2D, GLtextureMinFilter, GLlinear)

  #glTexParameteri(GLtexture2D, GLtextureMagFilter, GLlinear)
  ?glTexParameteri(GLtexture2D, GLTextureMagFilter, GLnearest)

  ?glTexParameteri(GLtexture2D, GLTextureWrapS, GLClampToEdge)
  ?glTexParameteri(GLtexture2D, GLTextureWrapT, GLClampToEdge)

proc whiteTex*(): TTex =
  if gWhiteTex.id.int != 0:
    return gWhiteTex

  ?glGenTextures(1, gWhiteTex.id.addr)
  ?glBindTexture(GLtexture2D, gWhiteTex.id)
  setTexParams()

  var pixel = [255'u8, 255'u8, 255'u8, 255'u8]
  ?glTexImage2D(GLtexture2D, 0, GLint GL_RGBA, 1, 1, 0, GL_BGRA, cGLUnsignedByte, pixel[0].addr)
  ?glBindTexture(GLtexture2D, 0)

  result = gWhiteTex