# Rewrite 5
- Move Libraries Source into pd directory and give them all their own CMakeLists.txt - Partial rewrite core (color, autogenerated vec), lithium (now uses UNIQUE PTR for Commands), UI7 - Use MenuV2 as new standart in UI7 - Implementz ViewPort Pre alpha to UI7 - Add Line Drawing to DrawList (not Working) - Implement a Complete new drievrs API (static Drivers) - NO SUPPORT FOR SHARED LIBRARY BUILDS IN VERSION 5 YET - Add Tools to Autogenerate Headers and Stuff
This commit is contained in:
51
include/pd/lithium/font.hpp
Normal file → Executable file
51
include/pd/lithium/font.hpp
Normal file → Executable file
@ -25,26 +25,25 @@ SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <pd/core/core.hpp>
|
||||
#include <pd/lithium/backend.hpp>
|
||||
#include <pd/lithium/command.hpp>
|
||||
#include <pd/lithium/pd_p_api.hpp>
|
||||
#include <pd/lithium/rect.hpp>
|
||||
#include <pd/lithium/texture.hpp>
|
||||
|
||||
using LITextFlags = PD::u32;
|
||||
enum LITextFlags_ {
|
||||
LITextFlags_None = 0, ///< Do nothing
|
||||
LITextFlags_AlignRight = 1 << 0, ///< Align Right of position
|
||||
LITextFlags_AlignMid = 1 << 1, ///< Align in the middle of pos and box
|
||||
LITextFlags_Shaddow = 1 << 2, ///< Draws the text twice to create shaddow
|
||||
LITextFlags_Wrap = 1 << 3, ///< Wrap Text: May be runs better with TMS
|
||||
LITextFlags_Short = 1 << 4, ///< Short Text: May be runs better with TMS
|
||||
LITextFlags_Scroll = 1 << 5, ///< Not implemented [scoll text if to long]
|
||||
using LiTextFlags = PD::u32;
|
||||
enum LiTextFlags_ {
|
||||
LiTextFlags_None = 0, ///< Do nothing
|
||||
LiTextFlags_AlignRight = 1 << 0, ///< Align Right of position
|
||||
LiTextFlags_AlignMid = 1 << 1, ///< Align in the middle of pos and box
|
||||
LiTextFlags_Shaddow = 1 << 2, ///< Draws the text twice to create shaddow
|
||||
LiTextFlags_Wrap = 1 << 3, ///< Wrap Text: May be runs better with TMS
|
||||
LiTextFlags_Short = 1 << 4, ///< Short Text: May be runs better with TMS
|
||||
LiTextFlags_Scroll = 1 << 5, ///< Not implemented [scoll text if to long]
|
||||
};
|
||||
|
||||
namespace PD {
|
||||
namespace LI {
|
||||
/** Font Loader for Lithium */
|
||||
class PD_LITHIUM_API Font : public SmartCtor<Font> {
|
||||
namespace Li {
|
||||
class PD_LITHIUM_API Font {
|
||||
public:
|
||||
/** Codepoint Data holder */
|
||||
struct Codepoint {
|
||||
@ -55,8 +54,13 @@ class PD_LITHIUM_API Font : public SmartCtor<Font> {
|
||||
float Offset = 0.f;
|
||||
bool pInvalid = false;
|
||||
};
|
||||
Font(Backend::Ref backend) { pBackend = backend; };
|
||||
|
||||
/** Constructore doesnt need Backand anymore */
|
||||
Font() = default;
|
||||
~Font() = default;
|
||||
|
||||
PD_SHARED(Font);
|
||||
|
||||
/**
|
||||
* Load a TTF File
|
||||
* @param path Path to the TTF file
|
||||
@ -76,20 +80,19 @@ class PD_LITHIUM_API Font : public SmartCtor<Font> {
|
||||
/**
|
||||
* Extended Draw Text Function that vreates a Command List
|
||||
*/
|
||||
void CmdTextEx(Vec<Command::Ref>& cmds, const fvec2& pos, u32 color,
|
||||
float scale, const std::string& text, LITextFlags flags = 0,
|
||||
void CmdTextEx(std::vector<Command::Ref>& cmds, const fvec2& pos, u32 color,
|
||||
float scale, const std::string& text, LiTextFlags flags = 0,
|
||||
const fvec2& box = 0);
|
||||
|
||||
/** Pixelheight */
|
||||
/** Data Section */
|
||||
int PixelHeight;
|
||||
int DefaultPixelHeight = 24;
|
||||
|
||||
private:
|
||||
/** List of textures (codepoints are using) */
|
||||
std::vector<Texture::Ref> Textures;
|
||||
/** 32Bit Codepoint Dataholder Reference Map */
|
||||
std::map<u32, Codepoint> CodeMap;
|
||||
Backend::Ref pBackend = nullptr;
|
||||
/**
|
||||
* 32Bit Codepoint Dataholder reference map
|
||||
* **Now using unordered map**
|
||||
*/
|
||||
std::unordered_map<u32, Codepoint> CodeMap;
|
||||
};
|
||||
} // namespace LI
|
||||
} // namespace Li
|
||||
} // namespace PD
|
Reference in New Issue
Block a user