Italia
Assembler Foro

Fehlermeldung beim Compilieren...

 
Hier kommt jetzt die Fehlermeldung von XPIA :
Error: Fehlende Headerfile : GL_BGRA
Procnaehe: ERZEUGETEX

Was muss hier umgeändert werden?
Ich kann keinen eingesetzten ASM-Code compilieren.

mfg
peter
KompilierenMarkierenSeparieren
 $H Windows.ph

If 0

    AsmStart rgb_umwandlung

        Parameters bildxy#,a&
        LOCAL r :BYTE
        LOCAL g :BYTE
        LOCAL b :BYTE
        LOCAL w :DWORD
        mov eax,para2
        mov w,eax
        mov ecx,0
        mov ebx,para1

        .while ecx<=w

            mov al,[ebx+ecx]
            mov b,al
            mov al,[ebx+ecx+1]
            mov g,al
            mov al,[ebx+ecx+2]
            mov r,al
            and b,255
            and g,255
            and r,255
            mov al,b

            .if al>0

                jmp wandle

            .endif

            mov al,g

            .if al>0

                jmp wandle

            .endif

            mov al,r

            .if al>0

                jmp wandle

            .endif

            mov al,0
            mov [ebx+ecx+3],al
            mov al,b
            mov [ebx+ecx+2],al
            mov al,r
            mov [ebx+ecx],al
            jmp weiter
            wandle:
            mov al,255
            mov [ebx+ecx+3],al
            mov al,b
            mov [ebx+ecx+2],al
            mov al,r
            mov [ebx+ecx],al
            weiter:
            add ecx,4

        .endw

    AsmEnd

EndIf

declare bild1$
declare x1!,y1!,dx!,dy!,winkel!
declare hWin&
declare width%,height%
declare bild_h&,a&,bild_h1&
declare bmi#,bildxy# ,ogl_rgb#
var groesse%=128*128*4
dim ogl_rgb#,groesse%
var texid%=0
var ende%=1
Window 20,20-600,450
Cls @RGB(220,220,220)
hWin& = @Create("text", %hWnd, "Test1", 220, 10, 350, 350)
oGL("Init", hwin&, 0,0, 0, 0)
oGL("PosMode", 1)
ogl("glReadBuffer",~GL_Back)
bild1$="auto.bmp"
var tex.auto%=erzeugetex(bild1$)
var tex.grund%=OGL("loadtexturebmp","tile1.bmp",3)
height%=128
width%=128
dispose bmi#
bitmap_header()
mcls 128,128,0
bild_h1& = Create("hPic", 0,"&MEMBMP" )

WHILE ende%

    sleep 1

    if isKey(81)

        winkel!=winkel!+0.4

    endif

    if isKey(69)

        winkel!=winkel!-0.4

    endif

    if isKey(87)

        y1!=Sin(winkel!/180.0*pi())*0.02
        x1!=Cos(winkel!/180.0*pi())*0.02
        dx!=dx!-x1!
        dy!=dy!-y1!

    endif

    if isKey(83)

        y1!=Sin(winkel!/180.0*pi())*0.02
        x1!=Cos(winkel!/180.0*pi())*0.02
        dx!=dx!+x1!
        dy!=dy!+y1!

    endif

    drawglscene()
    StartPaint %hwnd
    DrawText 20,160,(Format$("######0      ",byte(ogl_rgb#,2)))
    DrawText 60,160,(Format$("#####0      ",byte(ogl_rgb#,1)))
    DrawText 100,160,(Format$("######0      ",byte(ogl_rgb#,0)))
    EndPaint

ENDWHILE

proc drawglscene

    OGL("Clear")
    ogl("push")
    OGL("origin",dx!,dy!,-3)
    OGL("texture",tex.auto%,1)
    OGL("rotate",0,0,winkel!)
    OGL("quad",0.7,0.7)
    ogl("pop")
    ogl("glReadPixels",140,140,128,128,~GL_BGRA,~GL_UNSIGNED_BYTE,ogl_rgb#)
    ~setDIBits(%hdc,bild_h1&,0,128,ogl_rgb#,bmi#,0)
    drawpic bild_h1&,10,10,0
    OGL("move",0,0,-3)
    OGL("texture",tex.grund%,10)
    OGL("move",0,0,0)
    OGL("quad",8,8)
    OGL("origin",dx!,dy!,-3)
    OGL("texture",tex.auto%,1)
    OGL("rotate",0,0,winkel!)
    OGL("quad",0.7,0.7)
    OGL("show")

endproc

proc bitmap_header

    def &BI_RGB 0
    def &DIB_RGB_COLORS 0
    struct BITMAPINFOHEADER =
    biSize&, biWidth&, biHeight&, biPlanes%, biBitCount%, biCompression&,
    biSizeImage&, biXPelsPerMeter&, biYPelsPerMeter&, biClrUsed&, biClrImportant&
    dim bmi#,BITMAPINFOHEADER
    clear bmi#

    with bmi#

        .biSize&        = sizeof(bmi#)
        .biWidth&       = width%
        .biHeight&      = height%
        .biPlanes%      = 1
        .biBitCount%    = 32
        .biCompression& = &BI_RGB
        .biSizeImage&   = ((.biWidth& * .biBitCount%  8 - 1) | 3 + 1) * abs(.biHeight&)

    endwith

endproc

proc erzeugetex

    parameters namebild$
    mcls 0,0,0
    startpaint -1
    mloadbmp namebild$,0,0
    endpaint
    height%=%bmpx
    width%=%bmpy
    dispose bmi#
    bitmap_header()
    bild_h& = Create("hPic", -1, namebild$)
    a&=bmi#.biSizeImage&
    dim bildxy#,a&
    ~GetDIBits(%hdc,bild_h&,0,bmi#.biHeight&,bildxy#,bmi#,0)
    Call(xpia_getprocaddressm(xpia_hmodule&,"rgb_umwandlung"),bildxy#,a&)
    OGL("glGenTextures",1,ADDR(texid%))
    OGL("glBindTexture",~GL_TEXTURE_2D,texid%)
    OGL("glEnable",~GL_ALPHA_TEST)
    OGL("glAlphaFunc",~GL_GREATER, 0.1)
    OGL("glTexParameteri",~GL_TEXTURE_2D, ~GL_TEXTURE_MAG_FILTER, ~GL_LINEAR)
    OGL("glTexParameteri",~GL_TEXTURE_2D, ~GL_TEXTURE_MIN_FILTER, ~GL_LINEAR)
    OGL("gluBuild2DMipmaps",~GL_TEXTURE_2D, ~GL_RGBA, height%, width%, ~GL_RGBA, ~GL_UNSIGNED_BYTE, bildxy#)
    dispose bildxy#
    RETURN texid%

endproc

 
20.08.2008  
 



Du solltest langsam xpse und xpia auseinanderhalten können - das sind immer xpse-Meldungen und keine von XPIA.

Die Meldung ist selbsterklärend, erzeuge hierzu ein Minimalbeispiel und poste es im XPSE-Foro.
 
20.08.2008  
 




Frank
Abbing
Die Fehlermeldung kommt nicht von XPIA! GL_BGRA ist unbekannt, darum der Fehler. Der Wert per die Variable ist 32993.

Da du XPIA benutzen willst, musst du auch XPSE (der Precompiler) installiert haben. Und das necessario keine Windows.ph.
Ich habe deinen Code umgestellt, so funktioniert er bei mir (jedenfalls wird das Fenster geöffnet, das benötigte Bild fehlt mir). Aber daran denken, XPSE im Editor aufzurufen, nicht den Profan-Compiler. Hier der umgestellte Code:
KompilierenMarkierenSeparieren
 {$cleq}

If 0

    AsmStart rgb_umwandlung

        Parameters bildxy#,a&
        LOCAL r :BYTE
        LOCAL g :BYTE
        LOCAL b :BYTE
        LOCAL w :DWORD
        mov eax,para2
        mov w,eax
        mov ecx,0
        mov ebx,para1

        .while ecx<=w

            mov al,[ebx+ecx]
            mov b,al
            mov al,[ebx+ecx+1]
            mov g,al
            mov al,[ebx+ecx+2]
            mov r,al
            and b,255
            and g,255
            and r,255
            mov al,b

            .if al>0

                jmp wandle

            .endif

            mov al,g

            .if al>0

                jmp wandle

            .endif

            mov al,r

            .if al>0

                jmp wandle

            .endif

            mov al,0
            mov [ebx+ecx+3],al
            mov al,b
            mov [ebx+ecx+2],al
            mov al,r
            mov [ebx+ecx],al
            jmp weiter
            wandle:
            mov al,255
            mov [ebx+ecx+3],al
            mov al,b
            mov [ebx+ecx+2],al
            mov al,r
            mov [ebx+ecx],al
            weiter:
            add ecx,4

        .endw

    AsmEnd

EndIf

declare bild1$
declare x1!,y1!,dx!,dy!,winkel!
declare hWin&
declare width%,height%
declare bild_h&,a&,bild_h1&
declare bmi#,bildxy# ,ogl_rgb#
var groesse%=128*128*4
dim ogl_rgb#,groesse%
var texid%=0
var ende%=1
Window 20,20-600,450
Cls @RGB(220,220,220)
hWin& = @Create("text", %hWnd, "Test1", 220, 10, 350, 350)
oGL("Init", hwin&, 0,0, 0, 0)
oGL("PosMode", 1)
ogl("glReadBuffer",GL_Back)
bild1$="auto.bmp"
var tex.auto%=erzeugetex(bild1$)
var tex.grund%=OGL("loadtexturebmp","tile1.bmp",3)
height%=128
width%=128
dispose bmi#
bitmap_header()
mcls 128,128,0
bild_h1& = Create("hPic", 0,"&MEMBMP" )

WHILE ende%

    sleep 1

    if isKey(81)

        winkel!=winkel!+0.4

    endif

    if isKey(69)

        winkel!=winkel!-0.4

    endif

    if isKey(87)

        y1!=Sin(winkel!/180.0*pi())*0.02
        x1!=Cos(winkel!/180.0*pi())*0.02
        dx!=dx!-x1!
        dy!=dy!-y1!

    endif

    if isKey(83)

        y1!=Sin(winkel!/180.0*pi())*0.02
        x1!=Cos(winkel!/180.0*pi())*0.02
        dx!=dx!+x1!
        dy!=dy!+y1!

    endif

    drawglscene()
    StartPaint %hwnd
    DrawText 20,160,(Format$("######0      ",byte(ogl_rgb#,2)))
    DrawText 60,160,(Format$("#####0      ",byte(ogl_rgb#,1)))
    DrawText 100,160,(Format$("######0      ",byte(ogl_rgb#,0)))
    EndPaint

ENDWHILE

proc drawglscene

    OGL("Clear")
    ogl("push")
    OGL("origin",dx!,dy!,-3)
    OGL("texture",tex.auto%,1)
    OGL("rotate",0,0,winkel!)
    OGL("quad",0.7,0.7)
    ogl("pop")
    ogl("glReadPixels",140,140,128,128,32993,GL_UNSIGNED_BYTE,ogl_rgb#)
    setDIBits(%hdc,bild_h1&,0,128,ogl_rgb#,bmi#,0)
    drawpic bild_h1&,10,10,0
    OGL("move",0,0,-3)
    OGL("texture",tex.grund%,10)
    OGL("move",0,0,0)
    OGL("quad",8,8)
    OGL("origin",dx!,dy!,-3)
    OGL("texture",tex.auto%,1)
    OGL("rotate",0,0,winkel!)
    OGL("quad",0.7,0.7)
    OGL("show")

endproc

proc bitmap_header

    def &BI_RGB 0
    def &DIB_RGB_COLORS 0
    struct BITMAPINFOHEADER =
    biSize&, biWidth&, biHeight&, biPlanes%, biBitCount%, biCompression&,
    biSizeImage&, biXPelsPerMeter&, biYPelsPerMeter&, biClrUsed&, biClrImportant&
    dim bmi#,BITMAPINFOHEADER
    clear bmi#

    with bmi#

        .biSize&        = sizeof(bmi#)
        .biWidth&       = width%
        .biHeight&      = height%
        .biPlanes%      = 1
        .biBitCount%    = 32
        .biCompression& = &BI_RGB
        .biSizeImage&   = ((.biWidth& * .biBitCount%  8 - 1) | 3 + 1) * abs(.biHeight&)

    endwith

endproc

proc erzeugetex

    parameters namebild$
    mcls 0,0,0
    startpaint -1
    mloadbmp namebild$,0,0
    endpaint
    height%=%bmpx
    width%=%bmpy
    dispose bmi#
    bitmap_header()
    bild_h& = Create("hPic", -1, namebild$)
    a&=bmi#.biSizeImage&
    dim bildxy#,a&
    GetDIBits(%hdc,bild_h&,0,bmi#.biHeight&,bildxy#,bmi#,0)
    Call(xpia_getprocaddressm(xpia_hmodule&,"rgb_umwandlung"),bildxy#,a&)
    OGL("glGenTextures",1,ADDR(texid%))
    OGL("glBindTexture",GL_TEXTURE_2D,texid%)
    OGL("glEnable",GL_ALPHA_TEST)
    OGL("glAlphaFunc",GL_GREATER, 0.1)
    OGL("glTexParameteri",GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
    OGL("glTexParameteri",GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
    OGL("gluBuild2DMipmaps",GL_TEXTURE_2D, GL_RGBA, height%, width%, GL_RGBA, GL_UNSIGNED_BYTE, bildxy#)
    dispose bildxy#
    RETURN texid%

endproc


P.S.: Die erste Zeile steuert XPSE und sagt ihm, er soll den Code compilieren, linken und ausführen.
 
20.08.2008  
 



@Frank: Wie oben schon erwähnt handelt es sich hierbei um eine xpse-Meldung.
 
20.08.2008  
 



Ich hatte in "Optionen/Allgemeine Einstellungen/Interpreter den xpse.exe eingeben.
Hatte ja gestern schon die anderen Programme conmpiliert mit BMP-Tex usw.

Habe aber die Windows.ph nicht rausgenommen.

mfg
 
20.08.2008  
 



Dieser Befehl kann noch nicht umgesetzt werden : GL_BGRA
Kommt bald eine Cambiamento, das auch diese Variable anerkannt wird statt der Ziffer: 32993 ?

mfg
peter
 
20.08.2008  
 




Jac
de
Lad

KompilierenMarkierenSeparieren
Def &GL_BGRA 32993
>

und dann "&GL_BGRA" nehmen. Das ist wohl am einfachsten...
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
20.08.2008  
 



Das wäre unsinnig da er xpse nutzt erst zur Laufzeit die Konstante zu definieren.

const GL_BGRA=32993

wäre performanter. Ebenso sollte er im xpse Foro im Thread der fehlenden Konstanten diese Konstante posten...
 
21.08.2008  
 




Frank
Abbing
Und immer den Link dazu angeben...
 
21.08.2008  
 



Wo muss denn die GL_BGRA reingepackt werden.
Habe es mal in der gl.inc ergänzt im Ordner XPIA,/include wo die GL_RGBA liegt mit dem Wert : GL_BGRA EQU 32993. Es wird aber immer noch gemeckert. Wo muss dieses Variable denn noch eingetargen werden?

mfg
 
21.08.2008  
 



root:

iF
Du solltest langsam xpse und xpia auseinanderhalten können - das sind immer xpse-Meldungen und keine von XPIA.


jmp root
 
21.08.2008  
 



Mein Wunsch ist der, diese Variable GL_BGRA da anzulegen, wo sie hingehört, ohne das ich eine Ersatzzahl dafür suchen muss wenn ich xpse benutze.

mfg
 
21.08.2008  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

7.205 Views

Untitledvor 0 min.
Georg Teles09.01.2016
Magda07.09.2014
iF22.08.2014
ByteAttack22.08.2014
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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