Setbuffer where did it go?
BlitzMax Forums/BlitzMax Beginners Area/Setbuffer where did it go?
| ||
Where did it go to my wee Barry Burtons? I remember arsing around with Blitz+ and being able to draw to the desktop by going Setbuffer(Desktopbuffer()) or something like that. Is that not achievable in BlitzMax GUI? What would Rebecca Chambers say? |
| ||
Do a search for that topic |
| ||
It's not achievable in BlitzMAX period. No such thing as imagebuffers. |
| ||
Oh yes there is, you can render to a texture!Function Render2Image(image:TImage) Local DXFrame:TDX7ImageFrame = TDX7ImageFrame (image.frame(0)) PrimaryDevice.Device.SetRenderTarget DXFrame.Surface,0 End Function Only thing is I have not had the time to get the handle to the backbuffer so I can change it back again :) So it's a one-way solution at the moment. |
| ||
It's the price we pay for having hardware accelerated graphics in bmax. There are -very slow- ways to do it though. |
| ||
it's stinky. One way haha. |
| ||
what? |
| ||
Just ignore him. =] Oh yes there is, you can render to a texture! Can we have an OpenGL version of that function as well, pretty please? ;] |
| ||
It's the price we pay for having hardware accelerated graphics in bmax. There are -very slow- ways to do it though. = stinky Only thing is I have not had the time to get the handle to the backbuffer so I can change it back again :) So it's a *one-way* solution at the moment. = one way haha |
| ||
Oh I am so stupid muuuhhhhaaa.Strict Function Render2Image(image:TImage,frame:int=0) Local DXFrame:TDX7ImageFrame = TDX7ImageFrame (image.frame(frame)) PrimaryDevice.Device.SetRenderTarget DXFrame.Surface,0 End Function Function Render2BackBuffer() PrimaryDevice.Device.SetRenderTarget PrimaryDevice.backbuffer,0 End Function Switch it baby! {EDIT} Now with multiframe render :D |
| ||
Hmm, Tim have you got a simple example as I'm sure I have this wrong...Strict Function Render2Image(image:TImage,frame:Int=0) Local DXFrame:TDX7ImageFrame = TDX7ImageFrame (image.frame(frame)) PrimaryDevice.Device.SetRenderTarget DXFrame.Surface,0 End Function Function Render2BackBuffer() PrimaryDevice.Device.SetRenderTarget PrimaryDevice.backbuffer,0 End Function Graphics 640,480 Global myimage:TImage=LoadImage("max.png") While Not KeyHit(KEY_ESCAPE) Cls If MouseHit(1) render2image(myimage) DrawRect 0,0,40,40 EndIf render2backbuffer() DrawImage myimage,0,0 Flip Wend |
| ||
Like I said I have not finished this yet, the above code will swap the target but I think there is something else that needs to happen, a bit like the old Renderworld command in B3D.Function Renderworld() PrimaryDevice.Device.EndScene() PrimaryDevice.Device.BeginScene() End Function Still don't work though. |
| ||
Hey if you click in the window then the white square flashes up! |
| ||
Yep, but it doesn't get saved as part of the image which is what I thought it would do. |
| ||
Just figured how to do this. I'll post an example when it's working as it should. |