New cross platform render module - almost ready.

Miscellaneous Forums/General Discussion/New cross platform render module - almost ready.

With all this talk about software rendering and people telling me that it could not be done using standard DX7 and OGL installs I decided to give it a bash.

The Challenges :
1) Maintain system compatibilities on 3D and non 3D systems
2) Maintain cross-platform compatibilities
3) Provide the fastest possible rendering speeds whilst supporting the BMX graphics command set
4) Support for FullScreen and Windowed

My Solution :
A module that plugs into BMAX that enables software fallback on Windows and Mac. Render Acceleration enabled by an integrated DirtyRects system. ** This is straight out of the box, you don't need .dll's you don't need wrapper modules! It's autosensing so it'll drop back to whatever mode it needs.

http://modules.indiepath.com/forum/viewtopic.php?p=170

Example Code :
Strict

' Simple DirtyRect Implementation 
' Test for BMAX software Render mode
' Copyright 2006 Indiepath Ltd.

Include "MOD_Dirty2.bmx"

Global DrawMode
Global ShowDirty = False
Global screenwidth=640
Global screenheight=480

HideMouse()

Graphics 640,480,0

Local TestImage:TImage 	= LoadImage("image.png",0)
Local Test1:DirtyImage 	= DirtyImage.Create(TestImage)
Local Test2:DirtyImage 	= DirtyImage.Create(TestImage)
Local back:DirtyImage 		= DirtyImage.Load("bg1.jpg",FILTEREDIMAGE)

Local x:Float = 0
Local y:Float= 0

MoveMouse(80,70)

DrawMode = DrawAll

While Not KeyHit(KEY_ESCAPE)

	SetBlend(ALPHABLEND)
	SetAlpha(Sin(MilliSecs()/5)/4+0.75)
	SetColor(100,100,255)
	Test1.Draw(MouseX(),MouseY())
	
	SetAlpha(1)
	SetColor(Rnd(0,255),Rnd(0,255),Rnd(0,255))
	Test2.Draw(Int(Sin(x/10)*x),Int(Cos(x/10)*x))

	SetColor(255,255,255)
	back._Draw(DrawBG)
	
	DirtyRect._Flip
	DirtyRect._Cls
	DirtyRect.KillAll

	x:+ 0.002
	If x > 620 Then x = 0
	
Wend


Oh and this one will be free, open source, blah blah... But will be subject to a license for commercial framework type stuff (Sorry Jake).

Cool.
is there an ETA?

couple of days, just need to ensure the rects are calculated properly for rotated images.

good luck with this. I don't really plan to support non 3D hardware anyway. However, I suppose I could get round the licence by not distributing the code, getting the user to download it, and having a flag in my code to say if it's present, and if so I could make a couple of calls to it to set it up right? As in my framework could support it, but doesn't include it.

Yeah that would not be an issue.

ok thanks, I may look into it if I have time or there is demand.

ok thanks, I may look into it if I have time or there is demand.

Lol, you don't have to you know :D

yeah... that's quite a challenge you given yourself Indie... abstracting the rendering layer....

good luck...

--Mike

OBB completed. Now works with rotation commands, Handles and origin offsets.

I think it's finished - might need a few more tweaks before I release it though.

Grab it here is you wanna play with it : http://modules.indiepath.com/forum/viewtopic.php?p=170

**Please feel free to make a small donation if you do use it.

Oooh, interesting. How about a compiled exe to show off speed and such compared to OGL?

You can download it now.