it is a code for opengl
Function TextureWrite(tt:ttexture , xx:Int , yy:Int , col:Int)
Local map:tpixmap = tt.pixmap
Local w:Int = map.width
Local h:Int = map.height
Local x:Int , y:Int
Local pxl:Int
If map.format<>PF_RGBA8888
map = map.Convert(PF_RGBA8888)
Print "Convert"
EndIf
WritePixel map , xx , yy , col
'glDeleteTextures 1 , Varptr tt.gltex[0]
Local nuova_texture
glGenTextures 1,Varptr nuova_texture
tt.gltex[0] = nuova_texture
glBindtexture GL_TEXTURE_2D , tt.gltex[0]
glPixelStorei GL_UNPACK_ROW_LENGTH,map.pitch/BytesPerPixel[map.format]
glTexImage2D GL_TEXTURE_2D,0,GL_RGBA8,tt.width,tt.height,0,GL_RGBA,GL_UNSIGNED_BYTE,map.pixels
End Function
help mee!!
my example
Import klepto.minib3d
'SuperStrict
Global surf:tsurface
Global mesh:tmesh
Global tria:Int
Global pix:Int[256,256]
Graphics3D 640,480,0,2
ClearTextureFilters()
Global camera:tcamera = CreateCamera()
PositionEntity camera,0,0,0
Global box:tentity = CreateCube()
PositionEntity box,1,0,3
ScaleEntity box,1,1,.2
RotateEntity box,0,40,0
EntityPickMode box,2
Global box2:tentity = CreateCube()
ScaleEntity box2,.02,.02,.02
EntityColor box2,255,0,0
For nx = 0 To 255
For ny = 0 To 255
pix(nx , ny) = Rnd(65000)
Next
Next
While Not KeyDown(key_escape)
Local x#,y#,z#
TurnEntity box,KeyDown(key_up)-KeyDown(key_down),0,0
ent=CameraPick(camera,MouseX(),MouseY())
If ent>0
x# = PickedX()+(PickedNX()*0.01)
y# = PickedY()+(PickedNY()*0.01)
z# = PickedZ()+(PickedNZ()*0.01)
PositionEntity box2,x#,y#,z#
End If
te=MilliSecs()
salva_texture()
te2=MilliSecs()-te
RenderWorld
TGlobal.BeginMax2D
SetBlend AlphaBlend
SetAlpha 1
DrawText te2,10,10
TGlobal.EndMax2D
Flip
Wend
End
Function salva_texture()
Local image:TPixmap = CreatePixmap:TPixmap(256,256,PF_RGB888)
For Local nx:Int = 0 To 255
For Local ny:Int = 0 To 255
WritePixel(image , nx , ny ,pix(nx , ny))
Next
Next
SavePixmapPNG( image:TPixmap,"salva_immagine.png")
EntityTexture box,LoadTexture:ttexture("salva_immagine.png")
EntityFX box,32+3
image = Null
End Function
Function TextureWrite(tt:ttexture , xx:Int , yy:Int , col:Int)
Local map:tpixmap = tt.pixmap
Local w:Int = map.width
Local h:Int = map.height
Local x:Int , y:Int
Local pxl:Int
If map.format<>PF_RGBA8888
map = map.Convert(PF_RGBA8888)
Print "Convert"
EndIf
WritePixel map , xx , yy , col
'glDeleteTextures 1 , Varptr tt.gltex[0]
Local nuova_texture
glGenTextures 1,Varptr nuova_texture
tt.gltex[0] = nuova_texture
glBindtexture GL_TEXTURE_2D , tt.gltex[0]
glPixelStorei GL_UNPACK_ROW_LENGTH,map.pitch/BytesPerPixel[map.format]
glTexImage2D GL_TEXTURE_2D,0,GL_RGBA8,tt.width,tt.height,0,GL_RGBA,GL_UNSIGNED_BYTE,map.pixels
End Function
help mee!!
my example
Import klepto.minib3d
'SuperStrict
Global surf:tsurface
Global mesh:tmesh
Global tria:Int
Global pix:Int[256,256]
Graphics3D 640,480,0,2
ClearTextureFilters()
Global camera:tcamera = CreateCamera()
PositionEntity camera,0,0,0
Global box:tentity = CreateCube()
PositionEntity box,1,0,3
ScaleEntity box,1,1,.2
RotateEntity box,0,40,0
EntityPickMode box,2
Global box2:tentity = CreateCube()
ScaleEntity box2,.02,.02,.02
EntityColor box2,255,0,0
For nx = 0 To 255
For ny = 0 To 255
pix(nx , ny) = Rnd(65000)
Next
Next
While Not KeyDown(key_escape)
Local x#,y#,z#
TurnEntity box,KeyDown(key_up)-KeyDown(key_down),0,0
ent=CameraPick(camera,MouseX(),MouseY())
If ent>0
x# = PickedX()+(PickedNX()*0.01)
y# = PickedY()+(PickedNY()*0.01)
z# = PickedZ()+(PickedNZ()*0.01)
PositionEntity box2,x#,y#,z#
End If
te=MilliSecs()
salva_texture()
te2=MilliSecs()-te
RenderWorld
TGlobal.BeginMax2D
SetBlend AlphaBlend
SetAlpha 1
DrawText te2,10,10
TGlobal.EndMax2D
Flip
Wend
End
Function salva_texture()
Local image:TPixmap = CreatePixmap:TPixmap(256,256,PF_RGB888)
For Local nx:Int = 0 To 255
For Local ny:Int = 0 To 255
WritePixel(image , nx , ny ,pix(nx , ny))
Next
Next
SavePixmapPNG( image:TPixmap,"salva_immagine.png")
EntityTexture box,LoadTexture:ttexture("salva_immagine.png")
EntityFX box,32+3
image = Null
End Function