Français
Forum

XPSE: ligne number sur Bitmap zeichnen

 
- 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
 
05.09.2012  
 



« 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



5 kB
Hochgeladen:05.09.2012
Downloadcounter110
Download
 
05.09.2012  
 




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 X2
Er 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.
 
05.09.2012  
 




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
 
05.09.2012  
 




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
 
05.09.2012  
 




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
 
05.09.2012  
 




funkheld


GetXpiaProcAddress


je crois qui Aufrufname hat sich geändert ?

mais "Setpixel" verwendet wieder cet langsame WindowsAPI.

Gruss
 
05.09.2012  
 



quoi pouvoir son car ici?! Alles viel einfacher!

un Rechteck: [...] 

sur hWnd marque simple so:
KompilierenMarqueSéparation
nProc test

    rectangle(hDC,10,10,100,100)

endpro

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
nProc test

    MoveToEx(hDC,20,30,0)
    LineTo(hDC,100,100)

endproc


dans nProcs stehen quasi alle APIs bereit -

là peux es einem oui à garnichts manquer.

Einzelnes Pixel mettons?
KompilierenMarqueSéparation
nProc test

    setPixel(hDC,10,20,rgb(50,60,70))
    ...
 
05.09.2012  
 




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?
 
05.09.2012  
 



DeviceContext ( [...]  )

tu peux oui c'est ca si bien sur einem «PCSI» malen -

cela ginge ensuite z.B. so:
KompilierenMarqueSéparation
nProc test

    parameters aufDiesemHPic&//siehe create("hNewPic",... in XProfan-Hilfe
    var dc&=createCompatibleDC(hDC)// hDC ist von XProfan, siehe XProfan-Hilfe
    selectObject(dc&, aufDiesemHPic&)
    //rummalen

    whileLoop 1000

        setPixel(dc&,rnd(100),rnd(100),rnd($FFFFFF))

    wend

    //dc wieder entfernen da nicht mehr notwendig
    deleteDC(dc&)
    //fertig auf hPic rumgemalt

05.09.2012  
 



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: [...] 
 
05.09.2012  
 




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
 
05.09.2012  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

15.726 Views

Untitledvor 0 min.
Rainer Hoefs03.05.2019
Walter Köhler21.09.2018
Andreas Koch08.09.2015
iF12.04.2015
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie