Closed GWRon closed 1 year ago
Example doing a bit more:
SuperStrict
Framework Brl.StandardIO
Import Brl.RandomDefault
'Import Brl.GLMax2D
'Import Brl.D3D9Max2D
'Import SDL.D3D9SDLMax2D
'Import Sdl.GLSDLMax2D
'Import SDL.GL2SDLMax2D
Import Sdl.SDLRenderMax2D
import brl.PNGLoader
import brl.JPGLoader
Local inUseName:String
Graphics(800, 600)
SetBlend AlphaBlend
Local inUseInfo:SDLRendererInfo = TSDLRenderMax2DDriver(GetGraphicsDriver()).renderer.getInfo()
inUseName = inUseInfo.GetName()
Local img:TImage = LoadImage("bg.jpg")
Local img2:TImage = LoadImage("logo.png")
Local rt:TRenderImage = CreateRenderImageFromPixmap(LockImage(img), False)
Local rtTop:TRenderImage = CreateRenderImage(img.width, img.height, False)
midHandleimage(rt)
'render the blitzmax logo into a background,
'- render the logo in 4 "tinted" versions
SetRenderImage(rt)
SetColor 255,0,0
SetViewport(0,0, 100,100)
DrawImage(img2, 0, 0)
SetColor 0,255,0
SetViewport(100,0, 100,100)
DrawImage(img2, 0, 0)
'inbetween we render to something different
SetRenderImage(rtTop)
For Local i :Int = 0 To 100
SetColor Rand(0,255), Rand(0,255), Rand(0,255)
DrawText("Hey", Rand(0, rt.width-50), Rand(0, rt.height-20))
Next
SetRenderImage(rt)
SetColor 0,0,255
SetViewport(100,100, 100,100)
DrawImage(img2, 0, 0)
SetColor 255,255,255
SetViewport(0,100, 100,100)
DrawImage(img2, 0, 0)
SetViewport(0,0, rt.width, rt.height)
'draw our second render image
DrawImage(rtTop, 0,0)
'rt.clear(0,0,0,0) 'would blank out everything
SetRenderImage(Null)
'store gpu/rendertexture in pixmap and load it as bg image
'Local bgImage:TImage = LoadImage( rt.ToPixmap() )
'or
Local bgImage:TImage = LoadImage( CreatePixmapFromRenderImage(rt) )
SetColor 255,255,255
SetClsColor 40, 80, 160
While Not KeyDown(KEY_ESCAPE)
Cls
DrawImage(bgImage, 0,0)
DrawText("Renderer:" + GetGraphicsDriver().ToString() + " " + inUseName, 0, 0)
SetScale 1,1
DrawImage(rt, MouseX(), MouseY())
Flip
Wend
End
bg.jpg
logo.png
Simple Sample: