31 lines
812 B
Nim
31 lines
812 B
Nim
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
|