CreateTexture : Masked funtz nicht ...

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

ToeB

Betreff: CreateTexture : Masked funtz nicht ...

BeitragSo, Jan 11, 2009 12:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab eine Texture erstell mit CreateTexture. Da hab ich als dritten parameter noch die "4" angehängt, also masked. Damit schwarze flächen nicht eingezeichnet werden. Aber jetzt wird gar nix mehr eingezeichnet !

Der Hintergrund ist schwarz, die schrift weiß, aber es wird nix angezeigt :
Code: [AUSKLAPPEN]
Local IText = CreateTexture(512,512,4)
   Local Font = LoadFont(FFile$,13,0,0,0)
   Color 0,0,0
         Rect 0,0,512,512
         CopyRect(0,0,512,512,0,0,BackBuffer(),TextureBuffer(IText))
      Color 255,255,255
   SetFont Font   
   For x = 0 To 15
      For y = 0 To 15
         Cls
         Rect 12,12,8,8
         Text 16,16,Zeichensatz(x,y),1,1
         CopyRect(0,0,32,32,x*32,y*32,BackBuffer(),TextureBuffer(IText))
      Next
   Next    
   Cls   
   EntityFX IMesh,1+2+8+16
   EntityBlend IMesh,1


Oder liegt das daran das ich mit CopyRect arbeite und nicht mit SetBuffer TextureBuffer() ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Der Eisvogel

BeitragSo, Jan 11, 2009 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeig mal bitte den ganzen Code, vielleicht machst du was beim anzeigen falsch.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

ToeB

BeitragSo, Jan 11, 2009 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt ist ein weiteres Problem hinzugekommen : Ich kann in die Texture nur Rects und Ovals und so malen, nicht aber Texte schreiben.

Code: [AUSKLAPPEN]
Function f2d_LoadFont(FCameraHandle,FFile$)
   Local IPos = S_NFDB()
   Local IPivot = PeekInt(f2dCamera,FCameraHandle+f2dCameraPivot)
   Local IMesh = CreateMesh(IPivot)
   Local ISurf = CreateSurface(IMesh)
   Local IText = CreateTexture(512,512,4)
   Local Font = LoadFont(FFile$,13,0,0,0)
   SetFont Font   
   SetBuffer TextureBuffer(IText)
   Color 0,0,0
   Rect 0,0,512,512
   Color 255,255,255
   For x = 0 To 15
      For y = 0 To 15
         Text x*32+16,y*32+16,"HALLO",1,1;Zeichensatz(x,y),1,1
         Rect x*32,y*32,16,16
      Next
   Next
   Text 256,256,"TESTTESTTEST",1,1   
   SetBuffer BackBuffer()   
   If IText = 0 RuntimeError("Bild nicht gefunden : "+FFile$)
   If TextureWidth(IText) <> TextureHeight(IText) RuntimeError("Bild ist nicht gleichseitig : "+FFile$)
   Local ISize# = TextureWidth(IText)/2
   EntityTexture IMesh,IText
   EntityFX IMesh,1+2+8+16
   EntityBlend IMesh,1
   PokeInt(f2dBank,IPos+f2dBankOn,1)
   PokeInt(f2dBank,IPos+f2dBankMesh,IMesh)
   PokeInt(f2dBank,IPos+f2dBankSurface,ISurf)
   PokeInt(f2dBank,IPos+f2dBankTexture,IText)
   PokeInt(f2dBank,IPos+f2dBankCamera,FCameraHandle)
   PokeFloat(f2dBank,IPos+f2dBankScale,ISize)
   Return IPos
End Function



mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Noobody

BeitragSo, Jan 11, 2009 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
CreateTexture macht auf einigen (vielen?) Grafikkarten Probleme, wenn Alpha - Flags benutzt werden.
Das hier scheint auch ein solcher Fall zu sein.
Dagegen kannst du nicht viel machen - eine Möglichkeit wäre, die erstellte Textur abzuspeichern und mit den gewünschten Flags neu zu laden (selbstverständlich hinterher wieder die Datei löschen). Das ist leider nicht Echtzeittauglich und auch nicht besonders sauber, aber viele andere Möglichkeiten gibts leider nicht.
Ausserdem funktioniert Text im TextureBuffer nicht.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Tankbuster

BeitragMo, Jan 12, 2009 0:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich will ja nichts sagen, aber bei mir funktioniert Text im TexturBuffer einwandfrei. Wink
Vielleicht ist es ja nicht mit allen Grafikkarten/Treibern so, aber bei mir funzt es...
Twitter
Download Jewel Snake!
Windows|Android

D2006

Administrator

BeitragMo, Jan 12, 2009 9:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat glaub ich nichts mit Treiber oder so zu tun. Die Flags haben ihre Auswirkung nur beim Laden! (also bei LoadTexture). Wenn du eine Textur erstellst, musst du danach einmalig in ner Schleife jeden Pixel durchgehen und den Alpha-Wert der Farbe auf 0 setzen, bei jedem Pixel der maskiert werden soll.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Noobody

BeitragMo, Jan 12, 2009 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Das stimmt zwar, aber:

ToeB hat Folgendes geschrieben:
Aber jetzt wird gar nix mehr eingezeichnet !


Das sind normalerweise die Symptome des CreateTexture - Fehlers Wink
Wenn die Textur gänzlich 'verschwindet', sollte man auf CreateTexture mit Alphaflag eher verzichten.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group