Render to Texture: Read on.....

BlitzMax Forums/BlitzMax Programming/Render to Texture: Read on.....

I just did some tests on speed and I think you'd be interested in the results.

The code below gave these results (i've commented them) :

Render 1 Million Random Blocks to Backbuffer and Flip (Cycle1): 2739 Millisecs (DirectX) 1887 (OpengGL)
Render 1 Million Blocks to Texture then Draw Image to Backbuffer and Flip (Cycle1) : 2721 Millisecs (DirectX) 1867 (OpenGL)
Render 1 Million Random Blocks to Backbuffer and Flip (Cycle2): 2667 Millisecs (DirectX) 1867 (OpenGL)
Render 1 Million Blocks to Texture then Draw Image to Backbuffer and Flip (Cycle2) : 2670 Millisecs(DirectX) 1868 (OpenGL)

Strict

Import Indiepath.Render2Texture

HideMouse()

Graphics 512,512

tRender.Initialise()

Local myImage:TImage = tRender.Create(512,512)

Delay (500)
' Do Normal Render to Backbuffer

Local ms=MilliSecs()

tRender.BackBufferRender_Begin()
	DrawBlocks(1000000)
tRender.BackBufferRender_End()	

Flip 0

Print MilliSecs()-ms

WaitKey()
Cls

' Do Render To Texture Then draw Textured image on screen

ms=MilliSecs()

tRender.TextureRender_Begin(myImage)
	DrawBlocks(1000000)
tRender.TextureRender_End()

SetColor 255,255,255

tRender.BackBufferRender_Begin()
  	DrawImage myImage,0,0
tRender.BackBufferRender_End()

Flip 0

Print MilliSecs()-ms

WaitKey()

' Do Normal Render to Backbuffer

ms=MilliSecs()

tRender.BackBufferRender_Begin()
	DrawBlocks(1000000)
tRender.BackBufferRender_End()	

Flip 0

Print MilliSecs()-ms

WaitKey()
Cls

' Do Render To Texture Then draw Textured image on screen

ms=MilliSecs()

tRender.TextureRender_Begin(myImage)
	DrawBlocks(1000000)
tRender.TextureRender_End()

SetColor 255,255,255

tRender.BackBufferRender_Begin()
  	DrawImage myImage,0,0
tRender.BackBufferRender_End()

Flip 0

Print MilliSecs()-ms

WaitKey()

End


Function DrawBlocks(n:Int)
	For Local a:Int = 1 To n
		SetColor Rand(0,255),Rand(0,255),Rand(0,255)
		DrawRect(Rand(0,511),Rand(0,511),Rand(10,20),Rand(10,20))
	Next
EndFunction


Now unless I've made some stupid error in my test code I reckon that's pretty damn fast don't you Mr Cummings..