kevinmackenzie / objgluf Goto Github PK
View Code? Open in Web Editor NEWObject-Oriented OpenGL Framework
License: GNU General Public License v3.0
Object-Oriented OpenGL Framework
License: GNU General Public License v3.0
Since opengl texture size is limited, the character texture needs to be compressed from one row, to multiple rows in order to get more of the unicode character code.
Currently this library is only useful when importing into c++ applications, because of the reliance of the classes in the library. A future feature should be a extern 'C' option on the library to only use c-style linking to make it available to be used in managed applications as well instead of having to rewrite the library for c# for future projects
The documentation is a lot better than it used to be, but it should be in javadoc format so a Doxygen can be made.
The dialog windows are always rendered to the frame buffer, but it could be desirable to render it to a texture if the user wants to display the menu on a surface or do other kinds of transformations. This would also require adding a layer for event handling so the user input gets transformed into world-space.
All objects that have some sort of openGL object should have a getter for that id to improve flexibility.
Scroll Bar Doesn't Render right
Similar to how buffers organized, shaders should be transparent classes. The opaque pointers to classes defined in the source file is unnecessarily C-style and gets away from what we want to the library usage to be like. This would mean ripping out the ShaderManager
too. The downside is this would be less representative of the OpenGL state, but that should not be a big problem.
Instead of having a non-critical exception and weird logging behavior, we should just throw exceptions.
More file formats / pixel formats should be supported. Maybe vector images too. Additionally, the options for these textures should be improved. The single load method is very limiting.
have each control keep a buffer for text, and when the position changes, just update a uniform in the shaders
by default, focus cycle is with arrow keys and not configurable. Ideally this would not be the case, however until configurable shortcuts are made, this is how it is. When the focus is cycling, it causes an assertion failure
If the more advanced techniques could be aided by modifications or additions to the framework, it would be worth while to consider them.
It can be a hassle to only have one source file / header file, so the code should be split up into multiple files. Then, the ObjGLUF.h
file would just be including the necessary other header files.
Take Text and other low-level UI components non-global for better multi-thread support
The point to caret function is not working right, or the character rect array is not right
As can be seen by the steadily increasing memory usage over time of the TestApp, a memory leak exists somewhere
The text is readable, but it looks terrible and doesn't appear to look the same across platforms.
Create another outer layer to allow multiple windows to be used by this library
Right now, a GLAD-generated file is being used for extensions, but it may not be the best options. The UI framework and the rendering framework should require a certain set of extensions, but we don't want to limit the user to only those extensions, or require them to have extensions we aren't using either.
We should internally use a minimal set of extensions and allow the user to specify the extensions they want via their own GLAD header / source file.
So far, only the rects are supported for rendering; at some point each control should have an overloaded render method with some helper functions for simpler rendering
For some reason, which is not consistent, typing in the edit box causes mSelStart to change from -2 to -1, and mCaretPos to change from whatever it is, to the end of the box, causing the composite modification to include a removal of all text within the box, along with the insertion of a single character
Completely transcribe into c# if the user wants really raw and to-the-metal performance, this library wasn't for them anyways and most of the future improvements will be on the dialog system (which performance on which is not as important)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.