Assembler Forum | | | | | ici venez maintenant qui Fehlermeldung de XPIA : Error: Fehlende Headerfile : GL_BGRA Procnaehe: ERZEUGETEX
quoi muss ici umgeändert volonté? je peux keinen eingesetzten ASM-Code compilieren.
mfg peter KompilierenMarqueSéparation $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#
RETOUR texid%
endproc
|
| | | | |
| | | Du devrait lente xpse et xpia auseinanderhalten peut - ce sont toujours xpse-Meldungen et aucun de XPIA.
qui annonce ist selbsterklärend, erzeuge hierzu un Minimalbeispiel et Poste es im XPSE-Forum. |
| | | | |
| | Frank Abbing | qui Fehlermeldung venez pas de XPIA! GL_BGRA ist inconnu, tout autor qui faute. qui Wert pour qui Variable ist 32993.
là du XPIA benutzen veux, musst du aussi XPSE (qui Precompiler) installiert avons. et cela nécessaire aucun Windows.ph. j'ai deinen Code umgestellt, so funktioniert il chez mir (jedenfalls wird cela la fenêtre ouvert, cela benötigte Bild fehlt mir). mais daran penser, XPSE im Editor aufzurufen, pas den Profan-Compiler. ici qui umgestellte Code: KompilierenMarqueSéparation {$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#
RETOUR texid%
endproc
P.S.: la première la ligne steuert XPSE et sagt ihm, il soll den Code compilieren, linken et effectuer. |
| | | | |
| | | @Frank: comment dessus déjà erwähnt handelt es sich hierbei um une xpse-annonce. |
| | | | |
| | | je hatte dans "Optionen/Allgemeine Einstellungen/Interpreter den xpse.exe eingeben. Hatte oui gestern déjà qui anderen Programme conmpiliert avec BMP-Tex usw.
Habe mais qui Windows.ph pas rausgenommen.
mfg |
| | | | |
| | | cette Befehl peux encore pas mise en œuvre volonté : GL_BGRA venez bientôt une Changement, cela aussi cet Variable anerkannt wird statt qui Ziffer: 32993 ?
mfg peter |
| | | | |
| | Jac de Lad | | | | 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 ▲ |
| |
| | | cela wäre unsinnig là il xpse utilise seulement zur Laufzeit qui Konstante trop définir.
const GL_BGRA=32993
wäre performant. Ebenso sollte il im xpse Forum im Fil qui fehlenden Konstanten cet Konstante posten... |
| | | | |
| | Frank Abbing | et toujours den Link en supplément angeben... |
| | | | |
| | | wohin muss car qui GL_BGRA reingepackt volonté. Habe es la fois dans qui gl.inc ergänzt im Dossier XPIA,/include wohin qui GL_RGBA liegt avec dem Wert : GL_BGRA EQU 32993. Es wird mais toujours gemeckert. wohin muss cet Variable car encore eingetargen volonté?
mfg |
| | | | |
| | | racine:
iF
Du devrait lente xpse et xpia auseinanderhalten peut - ce sont toujours xpse-Meldungen et aucun de XPIA.
jmp racine |
| | | | |
| | | mon Wunsch ist qui, cet Variable GL_BGRA là anzulegen, wohin vous hingehört, sans le moi une Ersatzzahl pour chercher muss si je xpse benutze.
mfg |
| | | | |
|
répondreOptions du sujet | 7.200 Views |
Themeninformationencet Thema hat 4 participant: |