Deutsch
Forum

opengl: Print und Locate

 
Ich verstehe ogl print und ogl locate nicht! Wie es für 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 für 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 läuft 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 für 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&

endproc


Unten link erscheint: hallo welt, mehr nicht.
 
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!

Gruß
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&

endproc

 
15.01.2007  
 




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

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 für den Print-Befehl (wohlgemerkt, es geht hier nur um OGL) unbestimmt. Die Koordinaten des Locate-Befehles entsprechen den üblichen 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 Größe 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 für 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!

Gruß
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 Hilfe - dort fehlt diese!
 
15.01.2007  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.980 Betrachtungen

Unbenanntvor 0 min.
Sven Bader12.07.2021
Nico20.06.2012

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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