Deutsch
Forum

semitrans problem

 
hallo ich habe mal den folgenden demo code kopiert und die grafik angepasst! leider bekomme ich nur eine access violation!

declare fxhandle1&, fxhandle2&, bytearray1&, bytearray2&, name$
fxhandle1&=LoadExtBmp(0,%hdc) Handle 1: leere Bitmap erzeugen
name$=logo.bmp
fxhandle2&=LoadExtBmp(addr(name$),%hdc) Handle 2: Bild laden, z.B. 640x480 groß
CopyExtBmp(fxhandle1&,0,0,800,600,%HDC,0,0,0) Inhalt des Profanfensters nach Handle 1
bytearray1&=InitExtFX(fxhandle1&) Byte-Array zu Handle 1 erzeugen
bytearray2&=InitExtFX(fxhandle2&) Byte-Array zu Handle 2 erzeugen

WhileLoop 100
SemiTrans(%HDC,0,0,bytearray2&,bytearray1&,&loop) Das Bild wird in 100 Schritten in die
Wend Hintergrundgrafik eingeblendet

FreeExtFX(bytearray1&) Byte-Array 1 wieder freigeben
FreeExtFX(bytearray2&) Byte-Array 2 wieder freigeben
FreeExtBmp(fxhandle1&) Handle 1 wieder freigeben
FreeExtBmp(fxhandle2&) Handle 2 wieder freigeben

was mache ich nur falsch?

Sascha
 
19.04.2004  
 



Hallo Sascha,

wenn eine grafische Funktion mit zwei Bytearrays arbeitet, dann müßen beide Bytearray aber auch gleich groß sein (siehe Anleitung). Das ist bei dir nicht der Fall.

fxhandle1&=LoadExtBmo(0,%HDC)
Eine leere Bitmap in der aktuellen Windowsauflösung wird angelegt, also 1024x768 ???

fxhandle2&=LoadExtBmp(addr(name$),%hdc) Handle 2: Bild laden, z.B. 640x480 groß (oder ist deine Auflösung nur 640x480?)

CopyExtBmp(fxhandle1&,0,0,800,600,%HDC,0,0,0) Inhalt des Profanfensters nach Handle 1
Wieder andere Werte ???

Also, du mußt sicher gehen, das beide Bytearray gleich groß sind, z.B. 800x600.
Benutze anstatt LoadExtBmp(0,...) lieber CreateExtBmp(...)

Dann klappt es auch )

Gruß, Frank
 
19.04.2004  
 



hi frank!

und das ist bei allen effekten so? also allen funktionen die initextfx brauchen!?

Dann wird mir einiges klarer!

Sascha
 
19.04.2004  
 



Hallo Sascha,

genau, das steht aber auch in der Anleitung unter InitExtFX(), und ist ja auch logisch, wenn du zwei Speicher hast, und den einen veränderst und die veränderten Daten in den zweiten Speicher schreibst, und der Speicher ist aber zu klein, um alle daten zu erfassen, schreibst du natürlich in undefinierte Speicherbereiche, und das ist nie gut, oder...?

Gruß, Frank
 
19.04.2004  
 



ja das stimmt! hatte die anleitung nicht richtig gelesen!

also ich habe ja nicht soviel anhnung von grafikformaten aber kann es eigentlich dann auch sein das verschiedene grafik-qualitäten (truecolor etc.) probleme machen?
 
19.04.2004  
 



Hallo,

nein, unterschiedliche Grafikformate spielen keine Rolle, nur die Breite der Bitmaps muß glatt durch vier teilbar sein.
Intern arbeitet ProSpeed immer mit 24 Bit und geräteunabhängigen HDCs.

Gruß, Frank
 
19.04.2004  
 



hallo,

also so ganz klappen will es immernoch nicht!

ich habe folgenden code:
KompilierenMarkierenSeparieren
declare fxhandle1&, fxhandle2&, bytearray1&, bytearray2&, name$, logo&
fxhandle1&=CreateExtBmp(%hdc,800,600)
fxhandle2&=CreateExtBmp(%hdc,800,600)
name$="pong3dlogo.gif"
logo&=LoadExtImage(addr(name$),%hdc) Handle 2: Bild laden, z.B. 640x480 groß
CopyExtBmp(fxhandle1&,0,0,800,600,%HDC,0,0,0) Inhalt des Profanfensters nach Handle 1
CopyExtBmp(fxhandle2&,0,0,800,200,logo&,0,0,0)
bytearray1&=InitExtFX(fxhandle1&) Byte-Array zu Handle 1 erzeugen
bytearray2&=InitExtFX(fxhandle2&) Byte-Array zu Handle 2 erzeugen

WhileLoop 100

    SemiTrans(%HDC,0,0,bytearray1&,bytearray2&,&loop) Das Bild wird in 100 Schritten in die
    Wend Hintergrundgrafik eingeblendet
    FreeExtFX(bytearray1&) Byte-Array 1 wieder freigeben
    FreeExtFX(bytearray2&) Byte-Array 2 wieder freigeben
    FreeExtBmp(logo&)
    FreeExtBmp(fxhandle1&) Handle 1 wieder freigeben
    FreeExtBmp(fxhandle2&) Handle 2 wieder freigeben

ein hauptfenster existiert schon und wenn das logo eingeblendet wird dann komme komische grafikfehler (striche und verzerrungen)!

Was kann das schon wieder sein?
Sascha
 
19.04.2004  
 



Hi Sascha,

zwei Dinge hab ich in deinem Code entdeckt:

1.) LoadExtImage() hat nur einen Parameter, nicht zwei !!!
2.) fxhandle2& ist nur zu einem Teil mit Grafikdaten gefüllt worden, du kannst nicht davon ausgehen, das neu initierte Grafikflächen immer schwarz sind, manchmal befinden sich noch alte Daten darin...!?

Probier das mal.
Gruß, Frank
 
19.04.2004  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.688 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (8x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie