| |
|
|
- Seite 1 - |
|
|
Weil du immer noch nicht verständlich erklärt hast, was nprocs sind.
Hallo Nico,
danke für den Hinweis und den Thread hier - leider kann ich damit aber nichts anfangen da ich nicht wissen kann, was Du nicht verstehst.
Vlt. kannst Du mir unter Beachtung der Dokumentation [...] sagen, was Dir unklar ist.
Inline-Assembler:
|
|
|
| |
|
|
| |
|
- Seite 3 - |
|
|
| Das hatte ich ja angeboten, aber Du zwingst mich ja. |
|
|
| |
|
|
|
Nico Madysa | Ich? Ich dich zwingen? Ich von Hanswurst dich von großer Meister zwingen? Wer wäre ich und wer könnte ich sein, wenn es denn wäre, dass ich dich zwünge? Wer wäre und wer könnte, zwünge ich dich und ändertest du, mehr als Hansens Wurt sein? Bötest du an und zwünge ich dennoch, es wäre lächerlich, ja sonders gleichen! Um es kurz zu machen: Mach, was du willst. |
|
|
| |
|
|
|
| Das mit dem Zwingen nimmste aber zurück! |
|
|
| |
|
|
|
Nico Madysa | Du redetest doch zuerst von Zwängen! |
|
|
| |
|
|
|
| Ja hab ich von Frank. |
|
|
| |
|
|
|
Nico Madysa | Habe soeben versucht, meine Mandelbrotmenge XPSE-konform zu machen. Pluspunkt ist schon mal klar, dass XProfan und APIs unterstützt werden. Hat mich zunächst echt beeindruckt. KompilierenMarkierenSeparierenMandelbrotmenge zeichnen
{$cleq}
{nproc Farbe
nproc Farbe
parameters a!,b!
var za! = 0
var zb! = 0
var zr! = 0
var i% = 0
repeat
za! = a! + sqr(za!) - sqr(zb!)
zb! = b! + 2 * za! * zb!
zr! = Sqrt(Sqr(za!) + Sqr(zb!))
i%++
Sleep(1)
until (i% >= 255) or (zr! > 2)
var farbe% = $FF * (1 - i% / 255)
return RGB(farbe%,farbe%,farbe%)
endproc
{nproc MaleAus
nproc MaleAus
parameters hDC%, posx% , posy% , genau%
declare y%,x%
var my% = -1 * genau%
var mx% = -2 * genau%
var abbruch% = 0
whileloop my%, 0 - my%
y% = &loop
whileloop mx%, 0 - (mx% 2)
x% = &loop
SetPixel(hDC%,(posx% + x%),(posy% - y%),Farbe(x% / genau%,y% / genau%))
Sleep(0)
case GetASyncKeyState(27) : abbruch% = 1
case abbruch% : break
EndWhile
case abbruch% : break
EndWhile
endproc
cls
MaleAus(%hDC, 300,200 , 100)
waitinput
end
Doch, als ich dann kompilieren wollte, kam dann diese Fehlermeldung:
Warnung: undeklariert: GENAU% Naehe: ~22m VAR __xeL_MY%=-1 * GENAU%
Dann nahm ich, wie so oft empfohlen, den Kompilerbefehl {$noerr} und -- schwupps! -- brach profcomp.exe ab mit: "Befehl unbekannt: __cfInit"
Da muss noch gefeilt werden! |
|
|
| |
|
|
|
Nico Madysa | Nachtrag: Gerade eben Minimalbeispiel probiert: Kein mit parameters angegebener Wert ist deklariert: KompilierenMarkierenSeparieren {$cleq}
{nproc
nproc Test
parameters x%,y%,dummy%
x% = 1
declare dy%
whileloop y%,y% + 100
dy% = &loop
whileloop x%,x% + 100
SetPixel(%hDC,&loop,y%,$FF)
EndWhile
EndWhile
endproc
proc Test_X
parameters x%,y%
declare dy%
whileloop y%,y% + 100
dy% = &loop
whileloop x%,x% + 100
SetPixel &loop,y%,$FF00
EndWhile
EndWhile
endproc
cls
Test_X(100,100)
Test(205,100)
waitinput
end
|
|
|
| |
|
|
|
| Würdest Du nur einmal die Hilfe durchlesen, dann ginge Dir alles schwupps von den Fingern: [...] Datentypen: LONG&, FLOAT!, STRING$
Lade übrigens jetzt grad ein Update hoch, fehler bei jmps behoben - bitte unbedingt dann aktualisieren.
Tip: Wenn es richtig schnell werden soll, dann versuche rechnerisch auf Floats zu verzichten sondern nutze nur Long weil dieser direkt in Register passt.
Zu den APIS: Auch alle die man per Header einbindet! |
|
|
| |
|
|
|
| So gehts: KompilierenMarkierenSeparierenGemerkt/Separiert von http://xprofan.com/thread.core?p=54931#54931
{$cleq}
{nproc
nproc Test
parameters x&,y&,dummy&
x& = 1
declare dy&
whileloop y&,y& + 100
dy& = &loop
whileloop x&,x& + 100
SetPixel(%hDC,&loop,y&,$FF)
EndWhile
EndWhile
endproc
proc Test_X
parameters x&,y&
declare dy&
whileloop y&,y& + 100
dy& = &loop
whileloop x&,x& + 100
SetPixel &loop,y&,$FF00
EndWhile
EndWhile
endproc
cls
Test_X(100,100)
Test(205,100,0)
waitinput
end
und bei Test(205,100) fehlt(e) der 3. Parameter. Besonders fehlende/falsche Funktionsparameter lassen abstürzen wie auch jede API. XPSE kontrolliert zwar TYP und Anzahl von Parametern bei NProcs, muss aber wg. Kompatiblität manchmal die Klappe halten was aber Fehler durchschlüpfen lassen kann - da feile ich aber noch. |
|
|
| |
|
|
|
| Sehe jetzt erst, Du wollst Rechtecke pixeln - hattest bei SetPixel für Y aber falsche Variable - so gehts: KompilierenMarkierenSeparierenGemerkt/Separiert von http://xprofan.com/thread.core?p=54931#54931
{$cleq}
{nproc
nproc Test
parameters x&,y&,dummy&
x& = 1
declare dy&
whileloop y&,y& + 100
dy& = &loop
whileloop x&,x& + 100
SetPixel(%hDC,&loop,dy&,$FF)
EndWhile
EndWhile
endproc
proc Test_X
parameters x&,y&
declare dy&
whileloop y&,y& + 100
dy& = &loop
whileloop x&,x& + 100
SetPixel &loop,dy&,$FF00
EndWhile
EndWhile
endproc
cls
Test(205,100,0)
Test_X(100,100)
waitinput
end
Spielerei: ^^ KompilierenMarkierenSeparierenGemerkt/Separiert von http://xprofan.com/thread.core?p=54931#54931
{$cle}
{nproc
nproc Test
parameters data&
declare x&,y&,dummy&
x& = 1
declare dy&
var mcur&=dim(8)
while 1
getCursorPos(mCur&)
x&=int(sin(float(&getTickCount)*0.01)*100)+long(mCur&,0)
y&=int(cos(float(&getTickCount)*0.01)*100)+long(mCur&,4)
whileloop y&,y& + 100
dy& = &loop
whileloop x&,x& + 100
SetPixel(%hDC2,&loop,dy&,rnd(2)*getTickCount)
EndWhile
EndWhile
invalidaterect(hWnd,0,0)
updateWindow(hWnd)
wend
endproc
proc Test_X
parameters x&,y&
declare dy&
whileloop y&,y& + 100
dy& = &loop
whileloop x&,x& + 100
SetPixel &loop,dy&,$FF00
EndWhile
EndWhile
endproc
windowstyle 80
cls
showmax
createThread(0,0,procAddr(test,1),%hWnd,0,0)
waitinput
end
Grundsätzlich solch Bildmanipulationen aber noch viel viel schneller via get- und SetPixels (Compatible.Inc).
Nachtrag: Sehe grad, die Zeile za! = za! - zb! macht noch Probleme, Freizeichen vor dem Minus in bestimmten Situationen, grad mal schauen... (ohne Freizeichen gehts aber) |
|
|
| |
|
|
|
Nico Madysa | Ohje, einfach so den so ziemlich häufigsten Datentyp weggelassen? Das macht doch Umstellungsschwierigkeiten. Ich weiß zwar nicht, wie XPSE exakt arbeitet, aber was Profaner wollen, glaube ich, zumindest prinzipiell zu wissen; wie umständlich/zeitaufwendig wäre es denn, wenn XPSE in nprocs %-Integer automatisch in Longs umwandelte? |
|
|
| |
|
|
|
| Das dürfte nicht sooo schwierig werden, ich hab aber noch mit nem anderen Bug zu kämpfen und schaue Update... |
|
|
| |
|
|