Page 1 of 1

Sprites and so on rendered on a existing dx window?

Posted: Fri Apr 03, 2009 7:29 pm
by knut1
I have installed the subsystem for dx9 and have one important question.
Before i have to say i´m new on purebasic, but use some other languages.

My question.
Is it possible and how, to render all the dx9 sprites, all that , on an existing dx9 window?

FastImage could do that(is codet with purebasic).
There is a comman like Init() and the parameter is Getdevice([returns LPDIRECT3DDEVICE9 from the used 3d engine]

what can i do to do that too.

only one i have---- the command Getdevice() with the return "LPDIRECT3DDEVICE9"


and at last, hello @ all here...

Posted: Fri Apr 03, 2009 8:27 pm
by Ollivier
Knut1 wrote:on an existing dx9 window?
Welcome!

What do you want exactly? Do you want to merge draws created with PB in an other application?

Or do you want a short code to test sprites in PB?

Ollivier

Posted: Fri Apr 03, 2009 9:34 pm
by knut1
i try to create a litte sprite engine myelf.for an existing 3d engine(dx9)

okay short....... i have to parameters of the engine for using with it.
One command return the window handle(hwnd) and one returns "LPDIRECT3DDEVICE9".

GetRenderWindow() - returns the hwnd
GetDevice() - returns "LPDIRECT3DDEVICE9" -thats what i have to use, but don´t know how....

how can i use that?
the way with handle(hwnd is not the best for me i heared)

have test this code but it was flickering.....
chanced the output to my window(hwnd) of course, and it draws in the borders of the window.not good.

Code: Select all

Structure DrawingInfoStruct
  Type.l
  Window.l
  DC.l
  ReleaseProcedure.l
  PixelBuffer.l
  Pitch.l
  Width.l
  Height.l
  Depth.l
EndStructure

Global DS.DrawingInfoStruct

Procedure ReleaseOutput()
  ReleaseDC_(DS\Window,DS\DC)
EndProcedure

Procedure hWndOutput(hWnd) ; returns the outputID for the declared window handle
  DS\Type=2
  DS\Window=hWnd
  DS\DC=GetWindowDC_(hWnd)
  DS\ReleaseProcedure=@ReleaseOutput()
  ProcedureReturn DS
EndProcedure

flags=#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered

Knobhd.l=GetRenderWindow()

Repeat



StartDrawing(hWndOutput(Knobhd))
For r=40 To 1 Step -10
Circle(50,50,r,RGB(R*5,R*4,0))
Next
StopDrawing()
EndIf

Until Event=#PB_Event_CloseWindow

Posted: Fri Apr 03, 2009 9:59 pm
by Ollivier
Excuse me but I give up.

Now, I can't give the handle of the windowed screen of the own native 3D engine to an other application so I can't get such an external handle.

hope anybody could be help you.

Ollivier

Posted: Fri Apr 03, 2009 10:12 pm
by knut1
it runs, but it was flickering.....
the code above is from a german coder from a dx9 subsystem....

did you know FastImage? a library for blitzbasic and xors3d.
was written in purebasic...

With InitFastImage(GetDevice()) wie know it returns the pointer "LPDIRECT3DDEVICE9".

it works and it give a way, but i not know the right one.

Posted: Fri Apr 03, 2009 10:32 pm
by Ollivier
And Ogre? Is it not more simple to use it?

Posted: Fri Apr 03, 2009 10:50 pm
by knut1
no
i use xors3d. www.xors3d.com
it exists fastimage but have not the functionality what i want.

i only wish give the output of initsprite(and perhaps startdraw) to the dx9 window

Posted: Fri Apr 03, 2009 11:01 pm
by Ollivier
I am sorry. I can't help you.

Posted: Fri Apr 03, 2009 11:05 pm
by knut1
no problem perhaps anybody can help me.

anyway there are a way to draw in the dx window.......
anybody help.....