Re: Wozu dient CreateTexture()?
Verfasst: 05.08.2011 12:18
Hier:Danilo hat geschrieben:Kannst Du bitte mal ein Beispiel geben wie man damitDarkDragon hat geschrieben:Man sollte sowas sowieso nicht verwenden. Dafür gibt es Shader!
zeichnen kann? Ein Kreis mit Strich durch und darüber
den Text "Hallo PB!" bitte.
http://www.bradan.eu/files/drawing_shader.zip
Getestet mit PureBasic 4.60 Beta 3 - 64bit.
Nachtrag: hier noch ein Bild davon

Wie ich bereits erwähnte fehlt jedoch noch eine Möglichkeit, uniform variablen von PB aus zu definieren, d.h. die Zeit variable ist von OGRE vorgegeben, nicht von PB. Üblicherweise würde man aber eine statische Textur für den Text verwenden, sonst hat man für jeden Buchstaben pro Fragment einen Texturzugriff (auf alten Grafikkarten werden bei einem Branch beide Zweige ausgerechnet und erst danach wird entschieden welcher Zweig genommen wird).
Ja, aber das was hier mit TextureOutput() gemacht wird ist alles auf der CPU und nie auf der GPUDanilo hat geschrieben:Es gibt aber auch bei DirectX9 die Möglichkeit in eine Texture zu
zeichnen. Dafür gibt es IDirect3DTexture9::LockRect und
IDirect3DTexture9::UnlockRect. LockRect gibt dabei einen
Pointer direkt zu den Bits und den Pitch zurück.
Und mit IDirect3DDevice9::UpdateTexture kann man eine
Texture vom System-Speicher in eine Texture kopieren die
im Pool/Videospeicher ist.
@Vermilion:
CreateThread könnte garnicht so einfach gehen, weil die Grafikkarte keine x86 oder amd64 Einheit besitzt, sondern etwas völlig anderes.
[EDIT]
Ich überlege mir gerade .. über Lights könnte man Shader variablen momentan sogar setzen.