Español
Foro

XPSE: Linie en Mapa de bits dibujar

 
- Página 1 -



Andreas
Koch
¡Hola zusammen,

lo son veces otra vez una Problema, en el Yo no weiterkomme. Lo va por lo tanto, el Dibujar uno Graphen en una Mapa de bits a beschleunigen. Dabei es sólo una vez sólo en aneinander hängende Linien y yo sería el Ganze gerne con XPSE angehen.
Dabei stehe Yo nun antes zwei Problemen.

1. XPSE sabe sólo el Befehl Setpixel, Cuestión: sabe alguien API-Befehl, con el uno una Linie dibujar kann? Einstellungsmöglichkeiten de Farbe, Start- y Endpunkt sowie Linienstärke wären nötig.
2. XPSE características grundsätzlich sólo una vez sólo en el Ventana principal. Kann al Dibujar irgendwie en una Mapa de bits umleiten?

Zu 1.: el kann Yo wahrscheinlich auch todavía incluso remendar, el API-Befehl sería el Ganze sólo vereinfachen.

Zu 2. Yo intenta, me algo de el nProc drawhPicRotated a ziehen, qué esta Función a haben scheint, klappt pero no tan completamente....
KompilierenMarcaSeparación
 {$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 ihr me como weiterhelfen könntet.

Schönen Saludo

Andreas Koch
 
05.09.2012  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »

Sagen wir simplemente porque como algo "geschludert" wurde.

(habe el Stellen en el Code markiert)
KompilierenMarcaSeparación
 {$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
Ladeanzahl110
Descargar
 
05.09.2012  
 




Dieter
Zornow
Yo arbeite grundsätzlich no con XPSE, aber Xprofan ha doch el Befehle Line y LineTo. Um en una Mapa de bits para dibujar musst du Startpaint Handle y Endpaint uso.
 
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
Gracias. Aber el wusste Yo ya. Lo va por lo tanto, dass el con el Profano Befehlen demasiado tiempo dauert y yo el Ganze con XPSE beschleunigen möchte.
 
05.09.2012  
 




funkheld
¡Hola, Yo hatte así algo ya veces con XPIA gemacht, hay son auch algunos Beispiele drin. XPSE y XPIA puede sí zusammen genutzt voluntad.
Tuve damals no grossen Geschwindigkeitsunterschied determinar puede, porque el Grafik-Windows-Befehle(API-Befehl ) auch en XPIA(ASM) genutzt voluntad.
Das einzige qué beschleunigt se son bajo umständen Schleifen y Zählvariablen , esta Tiempo se aber otra vez por el Grafik-Windows-Befehle(API-Befehl ) verschlampt.

Ausser du schreibst ahora incluso una Linienprogramm usw., como musst du entonces aber auch otra vez el Punkte selber ausrechnen con ASM, nämlich si du dafür otra vez el Plotbefehl(API-Befehl ) nimmst , va el Zeitschlamperei otra vez los.



Yo arbeite grundsätzlich no con XPSE, aber Xprofan ha doch el Befehle Line y LineTo. Um en una Mapa de bits para dibujar musst du Startpaint Handle y Endpaint uso.


Ohne XPSE oder XPIA es el gesamte Profanprogramm grottenlangsam.

Schau hier veces para XPIA : [...] 
Das einzige qué hay gross geschleunigt se Es el Zählschleife.

Gruss
 
05.09.2012  
 




funkheld


Dann bliebe como todavía el Umlenken el Zeichenbefehle en una Mapa de bits....


Usted necesidad el Anfangsadresse el Mapa de bits el du ändern möchtest, Breite, Höhe y Bitmaptiefe, entonces kannst du loslegen con XPIA.

Gruss
 
05.09.2012  
 




Andreas
Koch
Sorry para el verfrühte Posting. Tuve el Link a el Ejemplo no gesehen.
Yo denke, así kann Yo qué anfangen. Aunque erhalte Yo siempre el Fehlermeldung, dass él GetXpiaProcAddress no sabe. Muss Yo dafür todavía algo einstellen?
KompilierenMarcaSeparación
 $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
End
 
05.09.2012  
 




funkheld


GetXpiaProcAddress


Yo glaube el Aufrufname ha se geändert ?

Aber "Setpixel" verwendet otra vez esta langsame WindowsAPI.

Gruss
 
05.09.2012  
 



Was macht ihr porque hier?! Alles viel einfacher!

Ein Rechteck: [...] 

Auf hWnd zeichen simplemente así:
KompilierenMarcaSeparación
nProc test

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

endpro

Linie oder Kurven gewünscht? Dann simplemente Linien oder Kurvenfunktionen nutzen!

Alle beschrieben y simplemente aufzurufen:
[...] 

Danach va ne Linie de 20,30 después de 100,100 así:
KompilierenMarcaSeparación
nProc test

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

ENDPROC


In nProcs posición quasi todos APIs bereit -

como kann lo una sí a garnichts fehlen.

Einzelnes Pixel conjunto?
KompilierenMarcaSeparación
nProc test

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




Andreas
Koch
Das sieht ahora así de, como podría Yo el direkt benutzen. Schönen Dank ya veces.

Yo möchte aber wirklich sólo muy ungern en el Ventana principal malen, eigentlich nada. Kann al no irgendwie umleiten? Yo habe como dieses hdc en el Verdacht, weiß pero no wirklich algo así anzufangen, siehe erster Contribución.

PS: Was bedeutet el DC eigentlich en lang?
 
05.09.2012  
 



DeviceContext ( [...]  )

Usted puede genau tan bueno en una "HPIC" malen -

el ginge entonces z.B. así:
KompilierenMarcaSeparación
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  
 



Apéndice: Gib auch ne pixels.inc [...]  para Beispiele más rápido Grafik- Effekte

y una hPic.inc auch para fortgeschrittenes Rumbildereihen: [...] 

y mostrar auch veces hier rein: [...] 
 
05.09.2012  
 




funkheld
Hmm.., qué du media son tan auch otra vez el langsamen internen Grafik-Windowsbefehle(API):
MoveToEx(hDC,20,30,0)
LineTo(hDC,100,100)
Für una flotte Grafik taugen el nichts.

Lo va doch direkt viel más rápido con (DirectX) y/oder con XPIA(ASM) sin esta fertigen langsamen Move y LineTo.

Gruss
 
05.09.2012  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

15.722 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie