| |
|
|
- page 1 - |
|
Andreas Koch | allô zusammen,
il y a la fois wieder un Problem, chez dem je pas weiterkomme. und dir tout autor, cela Zeichnen eines Graphen sur une Bitmap trop beschleunigen. Dabei ca va seulement einmal seulement um aneinander hängende Linien et je serait cela Ganze volontiers avec XPSE angehen. Dabei stehe je eh bien avant deux Problemen.
1. XPSE kennt seulement den Befehl Setpixel, Frage: kennt quelqu'un une API-Befehl, avec dem on une ligne number zeichnen peux? Einstellungsmöglichkeiten de la couleur, Start- et Endpunkt sowie Linienstärke wären nötig. 2. XPSE zeichnet grundsätzlich seulement einmal seulement sur dem Hauptfenster. peux on cela Zeichnen irgendwie sur une Bitmap détourner?
trop 1.: cela peux je mir wahrscheinlich aussi encore selbst bricoler, qui API-Befehl serait cela Ganze seulement simplifier.
trop 2. habe je versucht, mir quelque chose aus qui nProc drawhPicRotated trop tirer, quoi cet Funktion trop avons scheint, klappt mais pas so entier.... KompilierenMarqueSéparation {$cleq}
$I Pixels.Inc
Window 0,0 - %Maxx, %Maxy
var hPic&=create("hNewPic",400,400,$FF)
StartPaint hPic&
UseFont "Arial",30,0,1,0,0
textcolor $FFFF,-1
drawtext 5,0,"XProfan.Com"
textcolor $AA,-1
drawtext 5,0,"XProfan"
EndPaint
DrawPic hPic&,0,0,0
nproc Test
Parameters hPic&
long hDCBits=CreateCompatibleDC(hDC)
selectObject(hDCBits, hPic&)
WhileLoop 50
SetPixel(hDCBits,50+&loop,50,0)
EndWhile
EndProc
Test(hPic&)
DrawPic hPic&,500,0,0
WaitInput
Wäre prima, si son mir là weiterhelfen könntet.
Schönen Salut
Andreas Koch |
|
|
| |
|
|
|
« cette Beitrag wurde comme Solution gekennzeichnet. » |
|
| dire wir simple weil là quelque chose "geschludert" wurde.
(habe qui se mettre im Code markiert) KompilierenMarqueSéparation {$cleq}
Window 0,0 - %Maxx, %Maxy
var hPic&=create("hNewPic",400,400,$FF)
StartPaint hPic&
UseFont "Arial",30,0,1,0,0
textcolor $FFFF,-1
drawtext 5,0,"XProfan.Com"
textcolor $AA,-1
drawtext 5,0,"XProfan"
EndPaint
DrawPic hPic&,0,0;0// <-- statt DrawPic hPic&,0,0,0
Test(hPic&)
DrawPic hPic&,500,0;0// <-- statt DrawPic hPic&,500,0,0
WaitInput
nproc Test
Parameters hPic&
long hDCBits=CreateCompatibleDC(hDC)
selectObject(hDCBits, hPic&)
WhileLoop 50
SetPixel(hDCBits,50+&loop,50,0)
EndWhile
deleteDC(hDCBits)// <-- vergessen, eigentlicher Knackpunkt
ENDPROC
|
|
|
| |
|
|
|
|
Dieter Zornow | je travaille grundsätzlich pas avec XPSE, mais Xprofan hat doch qui Befehle Line et LineTo. Um sur un Bitmap trop zeichnen musst du Startpaint Handle et EndPaint verwenden. |
|
|
| XProfan X2Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 05.09.2012 ▲ |
|
|
|
|
Andreas Koch | merci. mais cela wusste je déjà. und dir tout autor, dass cela avec den Profan Befehlen trop longtemps dauert et je cela Ganze avec XPSE beschleunigen voudrais. |
|
|
| |
|
|
|
funkheld | allô, je hatte so quelque chose déjà la fois avec XPIA gemacht, là sommes aussi quelques Beispiele drin. XPSE et XPIA peut oui zusammen genutzt volonté. je hatte autrefois keinen grossen Geschwindigkeitsunterschied feststellen peut, weil qui Grafik-Windows-Befehle(API-Befehl ) aussi chez XPIA(ASM) genutzt volonté. cela einzige quoi beschleunigt wird sommes sous umständen Schleifen et Zählvariablen , cet Zeit wird mais wieder par qui Grafik-Windows-Befehle(API-Befehl ) verschlampt.
Ausser tu écris maintenant selbst un Linienprogramm usw., là musst du ensuite mais aussi wieder qui Punkte selber ausrechnen avec ASM, nämlich si du pour wieder den Plotbefehl(API-Befehl ) prends , allez qui Zeitschlamperei wieder à l'attaque.
je travaille grundsätzlich pas avec XPSE, mais Xprofan hat doch qui Befehle Line et LineTo. Um sur un Bitmap trop zeichnen musst du Startpaint Handle et EndPaint verwenden.
sans XPSE ou bien XPIA ist cela gesamte Profanprogramm grottenlangsam.
exposition ici la fois pour XPIA : [...] cela einzige quoi là gross geschleunigt wird ist qui Zählschleife.
Gruss |
|
|
| |
|
|
|
funkheld |
ensuite bliebe là encore cela Umlenken qui Zeichenbefehle sur une Bitmap....
Du brauchst qui Anfangsadresse qui Bitmap qui du changement vouloir, Breite, Hauteur et Bitmaptiefe, ensuite peux du loslegen avec XPIA.
Gruss |
|
|
| |
|
|
|
Andreas Koch | Sorry pour cela verfrühte Posting. je hatte den Link trop dem Beispiel pas gesehen. je denke, avec cela peux je quoi anfangen. Allerdings erhalte je toujours qui Fehlermeldung, dass il GetXpiaProcAddress pas kennt. Muss je pour encore irgendwas einstellen? KompilierenMarqueSéparation $MAKE CLE
$H Windows.ph
Declare hwin&,x&,y&,f&,hdcwin&
Window 20,20-200,200
hWin& = Create("Window", %hWnd, "Test", 250, 20, 650,500)
hDCWin& = ~GetWindowDC(hWin&)
If 0
AsmStart pset
Parameters hdcwin&,x&,y&,f&
mov ecx,para1
mov eax,para2
mov ebx,para3
mov edi,para4
invoke SetPixel,ecx,eax,ebx,edi
AsmEnd
EndIf
whileloop 0,100,1
x&=&loop
y&=&loop
f&=$ff0000
Call(GetXpiaProcAddress(XpiaModule&,"pset"),hdcwin&,x&,y&,f&)
endwhile
WaitInput
Fin
|
|
|
| |
|
|
|
funkheld |
GetXpiaProcAddress
je crois qui Aufrufname hat sich geändert ?
mais "Setpixel" verwendet wieder cet langsame WindowsAPI.
Gruss |
|
|
| |
|
|
|
| quoi pouvoir son car ici?! Alles viel einfacher!
un Rechteck: [...]
sur hWnd marque simple so: KompilierenMarqueSéparation ligne number ou bien Kurven gewünscht? ensuite simple Linien ou bien Kurvenfunktionen nutzen!
Alle beschrieben et simple aufzurufen: [...]
après allez ne ligne number de 20,30 pour 100,100 so: KompilierenMarqueSéparation dans nProcs stehen quasi alle APIs bereit -
là peux es einem oui à garnichts manquer.
Einzelnes Pixel mettons? KompilierenMarqueSéparation |
|
|
| |
|
|
|
Andreas Koch | cela sieht maintenant so aus, comme pourrait je cela direct benutzen. Schönen Dank déjà la fois.
je voudrais mais wirklich seulement très ungern sur dem Hauptfenster malen, eigentlich gar pas. peux on cela pas irgendwie détourner? j'ai là cet hdc im le doute, sais mais pas wirklich quelque chose avec cela anzufangen, siehe erster Beitrag.
PS: quoi bedeutet cela DC eigentlich dans long? |
|
|
| |
|
|
|
| |
|
|
|
| Nachtrag: Gib aussi ne pixels.inc [...] pour Beispiele plus rapide Grafik- Effekte
et une hPic.inc aussi pour fortgeschrittenes Rumbildereihen: [...]
et exposition aussi la fois ici rein: [...] |
|
|
| |
|
|
|
funkheld | Hmm.., quoi du meinst sommes oui aussi wieder qui langsamen internen Grafik-Windowsbefehle(API): MoveToEx(hDC,20,30,0) LineTo(hDC,100,100) Pour un flotte Grafik valoir qui rien.
und dir doch direct viel plus rapide avec (DirectX) et/ou bien avec XPIA(ASM) sans cet fertigen langsamen Move et LineTo.
Gruss |
|
|
| |
|
|