Italia
Foro

opengl: Print und Locate

 
Ich verstehe ogl print und ogl locate nicht! Wie es per mich aussieht funktioniert beides bei mir irgendwie nicht richtig.
KompilierenMarkierenSeparieren
 {$cleq}
include oglhelper.inc
cls
ogl("init",hwnd,0,0,0,0)
ogl("clear")
var oglFnt&:=ogl.createfont("courier new",20,true)
ogl("print",oglfnt&,"hallo welt")
ogl("print",oglfnt&,"hallo welten")
ogl("show")
waitkey
end

proc ogl.createfont

    parameters fontName$,size&,big%
    var fnt&:=create("font",fontName$,size&,0,big%,0,0)
    var oglfnt&:=ogl("BitmapFont",fnt&)
    deleteobject fnt&
    return oglfnt&

endproc


a) Warum wird hallo welten (nur bei mir?!) nicht angezeigt?
b) Warum, wenn ich vor die Prints ein ogl locate schreibe, wird (nur bei mir?!) garkein Text angezeigt?
c) in der Hilft ist leider nicht beschrieben wie die Parameter per ogl locate zu interpretieren sind.

Kann mir jemand helfen? Bei den 3D-Fonts hingegen funktioniert alles so wie es soll.

<offtopic>
Der original-Xpse Source:
KompilierenMarkierenSeparieren
!{$cleq}
//include oglhelper.inc
cls
ogl("init",hwnd,0,0,0,0)
ogl("clear")
long oglFnt:=ogl.createfont("courier new",20,true)
ogl("print",oglfnt,"hallo welt")
ogl("print",oglfnt,"hallo welten")
ogl("show")
waitkey
end

ogl.createfont (string fontName,long size,bool big) {

    long fnt:=create("font",fontName,size,0,big,0,0)
    long oglfnt:=ogl("BitmapFont",fnt)
    deleteobject fnt
    return oglfnt

}

</offtopic>
 
14.01.2007  
 




Jörg
Sellmeyer
Was soll man dabei denn jetzt testen? XPSE oder den Code? XPSE habe ich nicht und den Code erst umschreiben, damit er corre ist doch nicht Sinn der Sache, oder?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
14.01.2007  
 



Es gibt keinen Code umzuschreiben - es geht auch nicht um XPSE. Es geht um den o.G. Code - der ist reines XProfan. Das Problem ist beschrieben - verstehe nicht worum es Dir geht?!

Ich schrieb das ogl print und locate mir Probleme bereitet. xpse braucht niemand per mich testen.
 
14.01.2007  
 



Ohne umschreiben gibts nur Fehler
KompilierenMarkierenSeparieren
cls
ogl("init",%hwnd,0,0,0,0)
ogl("clear")
var oglFnt&=ogl.createfont("courier new",20,1)
ogl("print",oglfnt&,"hallo welt")
ogl("print",oglfnt&,"hallo welten")
ogl("show")
waitkey
end

proc ogl.createfont

    parameters fontName$,size&,big%
    var fnt&=create("font",fontName$,size&,0,big%,0,0)
    var oglfnt&=ogl("BitmapFont",fnt&)
    deleteobject fnt&
    return oglfnt&

15.01.2007  
 




RGH
[quote:c4654f04d2=iF]Es geht um den o.G. Code - der ist reines XProfan[/quote:c4654f04d2]
Leider eben nicht, was dazu führt, daß jemand ohne XPSE den Code ohne Änderungen nicht verwenden kann!

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
15.01.2007  
 



Stimmt - ich habe := vergessen zu ersetzen!

Der Code funzt trotzdem nicht wie zu erwarten?
KompilierenMarkierenSeparieren
cls
ogl("init",%hwnd,0,0,0,0)
ogl("clear")
var oglFnt&=ogl.createfont("courier new",20,1)
ogl("print",oglfnt&,"hallo welt")
ogl("print",oglfnt&,"hallo welten")
ogl("show")
waitkey
end

proc ogl.createfont

    parameters fontName$,size&,big%
    var fnt&=create("font",fontName$,size&,0,big%,0,0)
    var oglfnt&=ogl("BitmapFont",fnt&)
    deleteobject fnt&
    return oglfnt&

15.01.2007  
 




RGH
Hallo David,
Dein Code kann nicht funktionieren (zumindest nicht richtig), und zwar aus zwei Stabilire:

1. Es fehlt der Origin-Befehl. Bei Bitmap-Fonts gibt es keine räumliche Tiefe, d.h. sie werden auf der Z-Achse an Position 0 gezeichnet. Um etwas an Position 0 zu sehen, muß der Betrachter einen Schritt zurückgehen, bzw. der zu betrachtende Gegenstand zurück in den Raum geschoben werden.

2. Es fehlt der Locate-Befehl. Ohne Locate-Befehl ist die Darstellungsposition per den Print-Befehl (wohlgemerkt, es geht hier nur um OGL) unbestimmt. Die Koordinaten des Locate-Befehles entsprechen den solito X- und Y-Koordinaten in OpenGL, d.h. 0,0 ist exakt in der Mitte und wo genau auf dem Bildschirm 1,1 ist hängt von der Dimensione des Z-Wertes im Origin-Befehl ab.

Man kann sich das also so vorstellen, daß in der mit Z eingestellten Entfernung, also am Ursprungspunkt der OGL-Welt, eine 2D-Fläche ist, auf die geschrieben wird. Vor jedem Schreiben mit Print muß die Schreibposition eingestellt werden. (Gleiches gilt per die Darstellung von 2D-Bitmaps.)

So funktioniert Dein Beispiel:
KompilierenMarkierenSeparieren
cls
ogl("init",%hwnd,0,0,0,0)
ogl("clear")
oGL("Origin", 0, 0, -6)
var oglFnt&=ogl.createfont("courier new",20,1)
ogl("locate", 0, 0)
ogl("print",oglfnt&,"+ (0,0)")
ogl("locate", 1, 1)
ogl("print",oglfnt&,"+ (1,1)")
ogl("locate", -1, 1)
ogl("print",oglfnt&,"+ (-1,1)")
ogl("locate", 1, -1)
ogl("print",oglfnt&,"+ (1,-1)")
ogl("locate", -1, -1)
ogl("print",oglfnt&,"+ (-1,-1)")
ogl("locate", 2, 2)
ogl("print",oglfnt&,"+ (2,2)")
ogl("locate", -2, 2)
ogl("print",oglfnt&,"+ (-2,2)")
ogl("locate", 2, -2)
ogl("print",oglfnt&,"+ (2,-2)")
ogl("locate", -2, -2)
ogl("print",oglfnt&,"+ (-2,-2)")
ogl("show")
waitkey
end

proc ogl.createfont

    parameters fontName$,size&,big%
    var fnt&=create("font",fontName$,size&,0,big%,0,0)
    var oglfnt&=ogl("BitmapFont",fnt&)
    deleteobject fnt&
    return oglfnt&

endproc


Experimentiere ein wenig mit dem z-Wert im Origin-Befehl und dir wird sofort klar, was ich oben umständlich zu erklären versuche!

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
15.01.2007  
 



Jau - super Erklärung! Ab damit in die Aiuto - dort fehlt diese!
 
15.01.2007  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.987 Views

Untitledvor 0 min.
Sven Bader12.07.2021
Nico20.06.2012

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie