C
Hi.
Was jemand von euch was D3DCREATE_MULTITHREADED genau macht? Die infos in der MSDN ja ziehmlich spärtlich...
Mein problem ist folgendes:
Ich habe eine 3rd party komponente die von mir ein device und ein sruface bekommt und irgend welchen krahm da rein rendert.
Ich bekomme vom VMR9 immer was wieder einen call, der mir sagt, ich möchte doch bitte das surface füllen, dass ich bekommen habe.
Was ich jetzt machen ist ein WaitForSingleObject in der BeginRendering callback aus der 3rd party komponente. Sobald der VMR9 nach einen update fragt, setzte ich das surface als render target und lasses das rendering in der 3rd party komponente los laufen.
Das Problem ist nun, dass das sehr langsam ist, vor allem beim startup, da die 3rd party komponente in dem render thread den content stück für stück aufbaut und immer mal wieder rendert (e.g. 2 bilder laden, rendern, 2 bilder laden, rendern, .. kann ich nicht ändern). Da er aber durch den synch mit dem VMR dazu nur 25 mal pro sekunde was machen darf dauert das ganze ewig...
Was ich mir nun überlegen:
Ich lasses den 3rd party render-thread einfach laufen, ohne ihn mit dem VMR zu synchronisieren und nunr kommt D3DCREATE_MULTITHREADED ins spiel.
Stellt dieses flag sicher, dass sich die threads nicht gegenseitig das device kaputt machen, oder ist das einfach nur ein call-lock?
E.g.
- Der VMR läuft thread setzt einen Render state
- Ein der render thread läuft und setzt einen anderen render state
- Der VMR rendert, jetzt mit flaschen render-state
Wird das durch D3DCREATE_MULTITHREADED verhindert oder nicht?