Aktuelle Zeit: 18.08.2019 01:55

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: [OpenGL] mogl Minimalistic OpenGL - Library [2D]
BeitragVerfasst: 12.05.2018 11:32 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
mogl ist eine kleine, leicht zu bedienende 2D OpenGL Library mit
einfachen Funktionen für Sprites und Fonts.

Bild

Version: Test (pre alpha)
Plattform: Windows

Wenn jemand helfen will oder Fragen hat einfach posten :)

Download:
https://www.dropbox.com/s/dfgfkb3ikw4n4yn/mogl_alpha.zip?dl=0

Sonstiges:
Die DLLs sind gepackt !
Es kann zu Fehlarlarm bei AV - Software kommen !
mogl unterstützt momentan nur *.BMP & *.PNG Sprites !

Beispiel:
Code:
Interface MOGL_FONT
  FontName.s()
  FontSize.i()
  SetColor.i(Color.l)
  GetColor.l()
  Render.i(X.f,Y.f,Text.s)
  Release.i();can be released manuall otherwise moglClose() will clean up all remaining sprites
EndInterface

Interface MOGL_SPRITE
  Width.f()
  Height.f()
  CenterWidth.f()
  CenterHeight.f()
  Render.i(X.f,Y.f,Center.b = #False,Alpha.a = #Null,Angle.f= #Null,Tint.l = #Null)
  Release.i();can be released manuall otherwise moglClose() will clean up all remaining sprites
EndInterface

Import "mogl64.lib"
  moglSprite.i(*Buffer,File.s = #Null$);returns MOGL_SPRITE
  moglFont.i(FontName.s,FontSize.i,Color.l = $FFFFFFFF);returns MOGL_FONT
  moglScreen.i(Width.i,Height.i,Title.s = #Null$,RefreshRate.f = 16);refreshrate in milliseconds (internal render clock) !
  moglWidth.f();screen width
  moglHeight.f()
  moglCenterX();screen width / 2
  moglCenterY()
  moglMessage.i(*Msg = #Null);*Msg fills a MSG structure -> #WM_* -> for keyboard and mouse support !
  moglClear.i(Color.l)
  moglRender.i()
  moglFlip.i()
  moglFrames.i();returns fps
  moglDelta.f();returns the deltatime
  moglExit.i()
  moglClose.i();cleans up everything !
  moglVersion.i()
EndImport

Global *Debug.MOGL_FONT
Global *Sprite.MOGL_SPRITE
Global FPS.i
Global DeltaTime.f
Global Tick.f
Global Scale.f

If moglScreen(400,400)
  *Debug = moglFont("Arial",20)
  *Sprite = moglSprite(?bunny)
  If *Debug And *Sprite
    moglClear($ED1A1A1A)
    Repeat
      Repeat:Until moglMessage() = #Null
      FPS = moglFrames()
      DeltaTime = moglDelta()
      If moglRender()
       
        If Tick > 360:Tick = DeltaTime:Else:Tick + 2 * DeltaTime:EndIf;calculate angle tick -> rotation
       
        Scale = Tick / 100;calculate scale -> tick to scale
       
        glTranslatef_(200,200,0) ;translate to the screen center & apply scale
        glScalef_(Scale,Scale,0)
       
        *Sprite\Render(0,0,#True,0,Tick);render bunny sprites
        *Sprite\Render(0,0,#True,180,-Tick,#Red)
       
       
        glLoadIdentity_();reset matrix
       
        *Debug\Render(10,10,"FPS: " + Str(FPS)) ;render debug text
       
        moglFlip();flip buffers
      EndIf
    Until moglExit()
  EndIf
  moglClose()
EndIf

DataSection
  bunny:
  ;{ File: bunny.png - Size: 301 Bytes
  !dw 05089h, 0474Eh, 00A0Dh, 00A1Ah, 00000h, 00D00h, 04849h, 05244h, 00000h, 02000h, 00000h, 02000h, 00208h, 00000h, 0FC00h, 0ED18h, 000A3h, 00000h, 07406h, 04E52h, 00053h, 000FFh, 000AEh, 095C9h, 0CA9Ch, 00063h, 00000h, 07009h, 05948h, 00073h, 00E00h, 000C4h, 00E00h, 001C4h, 02B95h, 01B0Eh, 00000h, 0CD00h, 04449h, 05441h
  !dw 0C748h, 056BDh, 0165Bh, 02085h, 04408h, 06B8Eh, 01F72h, 0346Eh, 071D7h, 094DDh, 054FDh, 06EA7h, 084A2h, 07C8Eh, 064F5h, 00660h, 05701h, 01FB6h, 08D21h, 06C09h, 0E87Eh, 018EFh, 08B8Eh, 0C194h, 05C19h, 09348h, 0EE01h, 00B81h, 0DE18h, 05D18h, 09395h, 0DE18h, 0D9CFh, 07B98h, 0C70Ch, 0992Bh, 0057Dh, 0CC80h, 003ECh, 049A6h
  !dw 0CF14h, 0F857h, 0EB79h, 03507h, 09AECh, 09CB3h, 00D64h, 019D8h, 01B1Ch, 0B3ABh, 0EDA7h, 00D0Ch, 03074h, 048DEh, 0E5C5h, 0E53Ah, 06336h, 029DCh, 076F3h, 02A81h, 0AB82h, 06C89h, 0982Dh, 0A26Ah, 0F40Ch, 0444Eh, 03031h, 0FBD0h, 0819Ah, 012B3h, 0C000h, 0A50Fh, 051ECh, 0CFAEh, 0E2B3h, 0294Ah, 03D73h, 034C2h, 0DA10h, 04306h
  !dw 0AFBDh, 022A9h, 0E375h, 0856Dh, 0972Ch, 0ABC9h, 07D17h, 02619h, 01FFFh, 044ABh, 024D6h, 058A4h, 014E8h, 05323h, 03879h, 0D686h, 0EC16h, 02BF2h, 06EEDh, 06D1Fh, 09507h, 04B19h, 0D543h, 0D93Ch, 0001Ah, 00000h, 04900h, 04E45h, 0AE44h, 06042h, 00082h
  ;}
EndDataSection

_________________

Links:
PureBasic Discord
[ENGINE] 2D Engine Nautilus (Win)
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Zuletzt geändert von Mijikai am 26.05.2018 23:50, insgesamt 5-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGl Library [2D]
BeitragVerfasst: 12.05.2018 19:04 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo!

Ganz nett!

Mach mal weiter!

Ich habe dafür meine eigenen Lösungen, und programmiere ab und an daran weiter.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGl Library [2D]
BeitragVerfasst: 12.05.2018 21:00 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
ccode_new hat geschrieben:
Hallo!

Ganz nett!

Mach mal weiter!

Ich habe dafür meine eigenen Lösungen, und programmiere ab und an daran weiter.


Danke :)
Wirst du zu deinem Projekt noch Informationen veröffentlichen ?
Eventuell können wir uns gegenseitig helfen <)

(Hab grad Keyboard & Mouse handling imlementiert :coderselixir:)

_________________

Links:
PureBasic Discord
[ENGINE] 2D Engine Nautilus (Win)
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGl Library [2D]
BeitragVerfasst: 12.05.2018 21:33 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Zitat:
Danke :)
Wirst du zu deinem Projekt noch Informationen veröffentlichen ?
Eventuell können wir uns gegenseitig helfen <)


Gemach, gemach,...

Was willst du denn wissen ? :wink:

Ich habe sicherlich auch noch einige Fragen, aber probiere erst mal selber bestimmte Dinge.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGl Library [2D]
BeitragVerfasst: 12.05.2018 22:38 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hier einmal eine Frage.
(Auch wenn es hier nicht ganz passt.)

Hast du schon mal mit der Software Blender gearbeitet (und evtl. damit Objekte für OpenGL erstellt) ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGl Library [2D]
BeitragVerfasst: 13.05.2018 15:15 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
ccode_new hat geschrieben:
Was willst du denn wissen ? :wink:
...


:)
Momentan hab ich ein Problem mit:
Code:
;glUseFontBitmaps_()

Procedure.i fntRender(Font,X.f,Y.f,Text.s)
  glPushAttrib_(#GL_LIST_BIT)
  glColor4ub_(255,255,255,255)
  glRasterPos2f_(X,Y)
  glListBase_(Font)
  glCallLists_(Len(Text),#GL_UNSIGNED_SHORT,Text)
  glPopAttrib_()
EndProcedure


Das Offset zum Rendern ist nicht die obere linke Ecke des Text-Rects !?
und auf glScalef_() reagiert der Text auch nicht. :coderselixir:

ccode_new hat geschrieben:
...
Hast du schon mal mit der Software Blender gearbeitet (und evtl. damit Objekte für OpenGL erstellt) ?


Nein noch nicht, hab bisher nur mal was mit Cinema4D gemacht.
Blender sieht gut aus muss ich mal testen.

_________________

Links:
PureBasic Discord
[ENGINE] 2D Engine Nautilus (Win)
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGL - Library [2D]
BeitragVerfasst: 13.05.2018 16:10 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Zitat:
Das Offset zum Rendern ist nicht die obere linke Ecke des Text-Rects !?
und auf glScalef_() reagiert der Text auch nicht.


Bei OpenGL ist doch per Standard das Offset die linke untere Ecke.

Wie verwendest du mit deiner Textmatrix "glScalef_()" ?

Und mit glTranslated..(..) kann man ja an eine bestimmte Position springen. (Anbei: Ich habe mir das persönlich ja konvertiert in glLocateXYZ())

Leider kann ich dir aber jetzt aber wahrscheinlich trotzdem noch nicht weiterhelfen.
.........

Interessant wäre eine Lösung zum Import von obj/etc. -3D Modellen.

Zum Erstellen würde ich Blender, bzw. bevorzugt aber Wings3D nutzen.

Das händische Erstellen von 2D/3D -Objekten ist da nicht das wahre.

Mir ist auch bewusst das PureBasic eine auf DirectX/OpenGL basierende 3D - Engine eingebunden hat. (genannt Ogre)
Nur suche ich eine Lösung diese entweder für die OpenGL-Zwecke "zu missbrauchen" oder zu umgehen.

Mir würde für den Anfang ein Import ohne Animation/Shader-Extra/(auch ohne Texturen) genügen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGL - Library [2D]
BeitragVerfasst: 13.05.2018 17:25 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
ccode_new hat geschrieben:

Bei OpenGL ist doch per Standard das Offset die linke untere Ecke.

Wie verwendest du mit deiner Textmatrix "glScalef_()" ?

Und mit glTranslated..(..) kann man ja an eine bestimmte Position springen. (Anbei: Ich habe mir das persönlich ja konvertiert in glLocateXYZ())


Ich nutze glOrtho_() alles was ich sonst darstelle ist korrekt.
Code:
glOrtho_(0,Width,Height,0,-100,100)


Weder glScalef_() noch Window-Resize funktioniert.
Warum nur der Text streikt ist mir unklar.

Scaling z.B.:
Code:
glScalef_(5,5,1)
fntRender(Font,100,100,"Text")
...




ccode_new hat geschrieben:
Interessant wäre eine Lösung zum Import von obj/etc. -3D Modellen.

Zum Erstellen würde ich Blender, bzw. bevorzugt aber Wings3D nutzen.

Das händische Erstellen von 2D/3D -Objekten ist da nicht das wahre.

Mir ist auch bewusst das PureBasic eine auf DirectX/OpenGL basierende 3D - Engine eingebunden hat. (genannt Ogre)
Nur suche ich eine Lösung diese entweder für die OpenGL-Zwecke "zu missbrauchen" oder zu umgehen.

Mir würde für den Anfang ein Import ohne Animation/Shader-Extra/(auch ohne Texturen) genügen.



Ich kenn kein einziges professionelles/kommerzielles 2D/3D Spiel in Ogre.
Eventuell relevant für Obj-Files: http://www.purebasic.fr/english/viewtopic.php?t=68420

_________________

Links:
PureBasic Discord
[ENGINE] 2D Engine Nautilus (Win)
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGL - Library [2D]
BeitragVerfasst: 13.05.2018 19:53 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Zitat:
Ich kenn kein einziges professionelles/kommerzielles 2D/3D Spiel in Ogre.
Eventuell relevant für Obj-Files: http://www.purebasic.fr/english/viewtopic.php?t=68420


Das ist doch vollkommen uninteressant ob du ein kommerzielles 2D/3D Projekt/Spiel mit Ogre kennst.

Ogre ist ja nicht schlecht, aber mit PureBasic in Verbindung mit Linux gefällt mir das Ganze noch nicht.

Ich stelle mir noch die Frage: (zeige es mit PureBasic an)
Code:
;   ___       __       ___      _______           ___  __        ________      ________       ________           ___      ________      ___  ___          ________      ________      ________           _____ ______       ___      _________        ________      ________    _______       ________       ________      ___               ________       ___  ___      _________    ________      _______       ________           ________     
;  |\  \     |\  \    |\  \    |\  ___ \         |\  \|\  \     |\   __  \    |\   ___  \    |\   ___  \        |\  \    |\   ____\    |\  \|\  \        |\   ___ \    |\   __  \    |\   ____\         |\   _ \  _   \    |\  \    |\___   ___\     |\   __  \    |\   __  \  |\  ___ \     |\   ___  \    |\   ____\    |\  \             |\   ___  \    |\  \|\  \    |\___   ___\ |\_____  \    |\  ___ \     |\   ___  \        |\_____  \     
;  \ \  \    \ \  \   \ \  \   \ \   __/|        \ \  \/  /|_   \ \  \|\  \   \ \  \\ \  \   \ \  \\ \  \       \ \  \   \ \  \___|    \ \  \\\  \       \ \  \_|\ \   \ \  \|\  \   \ \  \___|_        \ \  \\\__\ \  \   \ \  \   \|___ \  \_|     \ \  \|\  \   \ \  \|\  \ \ \   __/|    \ \  \\ \  \   \ \  \___|    \ \  \            \ \  \\ \  \   \ \  \\\  \   \|___ \  \_|  \|___/  /|   \ \   __/|    \ \  \\ \  \       \|____|\  \   
;   \ \  \  __\ \  \   \ \  \   \ \  \_|/__       \ \   ___  \   \ \   __  \   \ \  \\ \  \   \ \  \\ \  \       \ \  \   \ \  \        \ \   __  \       \ \  \ \\ \   \ \   __  \   \ \_____  \        \ \  \\|__| \  \   \ \  \       \ \  \       \ \  \\\  \   \ \   ____\ \ \  \_|/__   \ \  \\ \  \   \ \  \  ___   \ \  \            \ \  \\ \  \   \ \  \\\  \       \ \  \       /  / /    \ \  \_|/__   \ \  \\ \  \            \ \__\   
;    \ \  \|\__\_\  \   \ \  \   \ \  \_|\ \       \ \  \\ \  \   \ \  \ \  \   \ \  \\ \  \   \ \  \\ \  \       \ \  \   \ \  \____    \ \  \ \  \       \ \  \_\\ \   \ \  \ \  \   \|____|\  \        \ \  \    \ \  \   \ \  \       \ \  \       \ \  \\\  \   \ \  \___|  \ \  \_|\ \   \ \  \\ \  \   \ \  \|\  \   \ \  \____        \ \  \\ \  \   \ \  \\\  \       \ \  \     /  /_/__    \ \  \_|\ \   \ \  \\ \  \            \|__|   
;     \ \____________\   \ \__\   \ \_______\       \ \__\\ \__\   \ \__\ \__\   \ \__\\ \__\   \ \__\\ \__\       \ \__\   \ \_______\   \ \__\ \__\       \ \_______\   \ \__\ \__\    ____\_\  \        \ \__\    \ \__\   \ \__\       \ \__\       \ \_______\   \ \__\      \ \_______\   \ \__\\ \__\   \ \_______\   \ \_______\       \ \__\\ \__\   \ \_______\       \ \__\   |\________\   \ \_______\   \ \__\\ \__\               ___
;      \|____________|    \|__|    \|_______|        \|__| \|__|    \|__|\|__|    \|__| \|__|    \|__| \|__|        \|__|    \|_______|    \|__|\|__|        \|_______|    \|__|\|__|   |\_________\        \|__|     \|__|    \|__|        \|__|        \|_______|    \|__|       \|_______|    \|__| \|__|    \|_______|    \|_______|        \|__| \|__|    \|_______|        \|__|    \|_______|    \|_______|    \|__| \|__|              |\__\
;                                                                                                                                                                                       \|_________|                                                                                                                                                                                                                                           \|__|
;                                                                                                                                                                                                                                                                                                                                                                                                                                                   
;


So ein Obj-Importer ist nicht ganz einfach.
Wenn man da Mesh (Da brauch man auch noch so ein ominösen Konverter) verwenden kann wäre das auch etwas.

Ich hoffe ich bekomme da noch eine Lösung hin.
Ich muss mich aber sowieso erst einmal intensiver mit 3D Beschäftigen.

........
Bringt es was wenn du:
glPushMatrix_() und glPopMatrix_() nutzt ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [OpenGL] mogl Minimalistic OpenGL - Library [2D]
BeitragVerfasst: 13.05.2018 21:05 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
ccode_new hat geschrieben:
Das ist doch vollkommen uninteressant ob du ein kommerzielles 2D/3D Projekt/Spiel mit Ogre kennst.
Ogre ist ja nicht schlecht, aber mit PureBasic in Verbindung mit Linux gefällt mir das Ganze noch nicht.


Schlecht nicht aber ich habe kein Bock auf 2 Dokumentationen und einer max. 3 klassigen Engine.

ccode_new hat geschrieben:
...
Bringt es was wenn du:
glPushMatrix_() und glPopMatrix_() nutzt ?



Macht keinen Unterschied.

_________________

Links:
PureBasic Discord
[ENGINE] 2D Engine Nautilus (Win)
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye