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
|