From 41979df6935bcfcb7db5f8e3aeb8de439c811ef4 Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Thu, 10 Nov 2011 00:24:19 +0000 Subject: [PATCH] -- [Add] Added fonts, I am using SDL_ttf for now as it is quick and easy. This is the last you are getting from me untill I have something at least visible to demo. --- Data/Media/Fonts/Enigma_2.ttf | Bin 0 -> 17992 bytes Data/Media/Fonts/Enigma_2i.ttf | Bin 0 -> 18988 bytes Data/Media/Fonts/Enigma_legal_en.txt | 203 +++++++++++++++++++++++++++ Data/Media/error.png | Bin 0 -> 235 bytes Unuk-QT/Makefile | 17 ++- Unuk-QT/Unuk-QT.pro | 6 +- src/libUnuk/Text.cpp | 112 +++++++++++++++ src/libUnuk/Text.h | 50 +++++++ 8 files changed, 382 insertions(+), 6 deletions(-) create mode 100644 Data/Media/Fonts/Enigma_2.ttf create mode 100644 Data/Media/Fonts/Enigma_2i.ttf create mode 100644 Data/Media/Fonts/Enigma_legal_en.txt create mode 100644 Data/Media/error.png create mode 100644 src/libUnuk/Text.cpp create mode 100644 src/libUnuk/Text.h diff --git a/Data/Media/Fonts/Enigma_2.ttf b/Data/Media/Fonts/Enigma_2.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b73fdc4195a574b1d22b6f940e4d3e792bbf89da GIT binary patch literal 17992 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 literal 0 HcmV?d00001 diff --git a/Data/Media/Fonts/Enigma_2i.ttf b/Data/Media/Fonts/Enigma_2i.ttf new file mode 100644 index 0000000000000000000000000000000000000000..db691d753ff55ff6b3d63ae7d0ea7a6dc365b7c8 GIT binary patch literal 18988 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

0GtX{gs;qYe+H*TFrsMph|D;RfX{1^tK$#keyC zIL?vOAX>K4b_9Aqe;zu{!f;u?M&js3>WymBTwDzZQvt6W_i6M*8KTB7sYv54#&-Ww zgm{Uof>McE7L4{em@Y?3b1)f46~;FU_z@M{ zxI;5x;XWHYWAPcyZ>^-sWLy#6?QmzJ&1^jUZ*iAfKKNgbUM*ayui0pE=`Uu<;;^ac zp$Z3$>C)JUs$(r^=4N5Oego`g0KYomfRCj`S@cF3@1>ISKL~zufsG9co{!g{@9nTD z@vs4%V2P4oBM@K4$|eH{`n?cH^xLd+=_FFnfo+i?>d^kGDMR#rqug;f)R-aj5VeIT_bt7-9t|+gHuPL8Ab9&9>x#eIMJn6{9{{dsd$LIh6 literal 0 HcmV?d00001 diff --git a/Data/Media/Fonts/Enigma_legal_en.txt b/Data/Media/Fonts/Enigma_legal_en.txt new file mode 100644 index 0000000..c5a239a --- /dev/null +++ b/Data/Media/Fonts/Enigma_legal_en.txt @@ -0,0 +1,203 @@ +The font included in this zip file: + + Enigma__2.ttf (Enigmatic) + Enigma_2i.ttf (Enigmatic Italic) + +is freeware, and can be used for any sort of work, from websites to term +papers to ad campaigns. If you use it in anything I'm likely to see and +recognize, I'd appreciate hearing about it. + +This zip file can also be distributed freely, so long as no files are +removed from it, and so long as the files are not altered. + +Otherwise, you can modify the font however you like, but you must +completely rename the new font, and the resulting font must be +freeware, as stated in Part 4 of the DSL below. + +My name is Darren Rigby, and I created Enigmatic and Enigmatic Italic. +I've copylefted them. You can contact me at dart@puzzlers.org. + + +FULL LICENCE +------------ +DESIGN SCIENCE LICENSE + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +Copyright © 1999-2001 Michael Stutz +Verbatim copying of this document is permitted, in any medium. + +0. PREAMBLE. + +Copyright law gives certain exclusive rights to the author of a work, +including the rights to copy, modify and distribute the work (the +"reproductive," "adaptative," and "distribution" rights). + +The idea of "copyleft" is to willfully revoke the exclusivity of those +rights under certain terms and conditions, so that anyone can copy and +distribute the work or properly attributed derivative works, while all +copies remain under the same terms and conditions as the original. + +The intent of this license is to be a general "copyleft" that can be +applied to any kind of work that has protection under copyright. This +license states those certain conditions under which a work published +under its terms may be copied, distributed, and modified. + +Whereas "design science" is a strategy for the development of +artifacts as a way to reform the environment (not people) and +subsequently improve the universal standard of living, this Design +Science License was written and deployed as a strategy for promoting +the progress of science and art through reform of the environment. + +1. DEFINITIONS. + +"License" shall mean this Design Science License. The License applies +to any work which contains a notice placed by the work's copyright +holder stating that it is published under the terms of this Design +Science License. + +"Work" shall mean such an aforementioned work. The License also +applies to the output of the Work, only if said output constitutes a +"derivative work" of the licensed Work as defined by copyright law. + +"Object Form" shall mean an executable or performable form of the +Work, being an embodiment of the Work in some tangible medium. + +"Source Data" shall mean the origin of the Object Form, being the +entire, machine-readable, preferred form of the Work for copying and +for human modification (usually the language, encoding or format in +which composed or recorded by the Author); plus any accompanying +files, scripts or other data necessary for installation, configuration +or compilation of the Work. + +(Examples of "Source Data" include, but are not limited to, the +following: if the Work is an image file composed and edited in PNG +format, then the original PNG source file is the Source Data; if the +Work is an MPEG 1.0 layer 3 digital audio recording made from a WAV +format audio file recording of an analog source, then the original WAV +file is the Source Data; if the Work was composed as an unformatted +plaintext file, then that file is the Source Data; if the Work was +composed in LaTeX, the LaTeX file(s) and any image files and/or custom +macros necessary for compilation constitute the Source Data.) + +"Author" shall mean the copyright holder(s) of the Work. + +The individual licensees are referred to as "you." + +2. RIGHTS AND COPYRIGHT. + +The Work is copyrighted by the Author. All rights to the Work are +reserved by the Author, except as specifically described below. This +License describes the terms and conditions under which the Author +permits you to copy, distribute and modify copies of the Work. + +In addition, you may refer to the Work, talk about it, and (as +dictated by "fair use") quote from it, just as you would any +copyrighted material under copyright law. + +Your right to operate, perform, read or otherwise interpret and/or +execute the Work is unrestricted; however, you do so at your own risk, +because the Work comes WITHOUT ANY WARRANTY -- see Section 7 ("NO +WARRANTY") below. + +3. COPYING AND DISTRIBUTION. + +Permission is granted to distribute, publish or otherwise present +verbatim copies of the entire Source Data of the Work, in any medium, +provided that full copyright notice and disclaimer of warranty, where +applicable, is conspicuously published on all copies, and a copy of +this License is distributed along with the Work. + +Permission is granted to distribute, publish or otherwise present +copies of the Object Form of the Work, in any medium, under the terms +for distribution of Source Data above and also provided that one of +the following additional conditions are met: + +(a) The Source Data is included in the same distribution, distributed +under the terms of this License; or + +(b) A written offer is included with the distribution, valid for at +least three years or for as long as the distribution is in print +(whichever is longer), with a publicly-accessible address (such as a +URL on the Internet) where, for a charge not greater than +transportation and media costs, anyone may receive a copy of the +Source Data of the Work distributed according to the section above; or + +(c) A third party's written offer for obtaining the Source Data at no +cost, as described in paragraph (b) above, is included with the +distribution. This option is valid only if you are a non-commercial +party, and only if you received the Object Form of the Work along with +such an offer. + +You may copy and distribute the Work either gratis or for a fee, and +if desired, you may offer warranty protection for the Work. + +The aggregation of the Work with other works that are not based on the +Work -- such as but not limited to inclusion in a publication, +broadcast, compilation, or other media -- does not bring the other +works in the scope of the License; nor does such aggregation void the +terms of the License for the Work. + +4. MODIFICATION. + +Permission is granted to modify or sample from a copy of the Work, +producing a derivative work, and to distribute the derivative work +under the terms described in the section for distribution above, +provided that the following terms are met: + +(a) The new, derivative work is published under the terms of this +License. + +(b) The derivative work is given a new name, so that its name or title +cannot be confused with the Work, or with a version of the Work, in +any way. + +(c) Appropriate authorship credit is given: for the differences +between the Work and the new derivative work, authorship is attributed +to you, while the material sampled or used from the Work remains +attributed to the original Author; appropriate notice must be included +with the new work indicating the nature and the dates of any +modifications of the Work made by you. + +5. NO RESTRICTIONS. + +You may not impose any further restrictions on the Work or any of its +derivative works beyond those restrictions described in this License. + +6. ACCEPTANCE. + +Copying, distributing or modifying the Work (including but not limited +to sampling from the Work in a new work) indicates acceptance of these +terms. If you do not follow the terms of this License, any rights +granted to you by the License are null and void. The copying, +distribution or modification of the Work outside of the terms +described in this License is expressly prohibited by law. + +If for any reason, conditions are imposed on you that forbid you to +fulfill the conditions of this License, you may not copy, distribute +or modify the Work at all. + +If any part of this License is found to be in conflict with the law, +that part shall be interpreted in its broadest meaning consistent with +the law, and no other parts of the License shall be affected. + +7. NO WARRANTY. + +THE WORK IS PROVIDED "AS IS," AND COMES WITH ABSOLUTELY NO WARRANTY, +EXPRESS OR IMPLIED, TO THE EXTENT PERMITTED BY APPLICABLE LAW, +INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. + +8. DISCLAIMER OF LIABILITY. + +IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS WORK, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +END OF TERMS AND CONDITIONS + diff --git a/Data/Media/error.png b/Data/Media/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6091309dae3709495b7cf2fb5fa50d984e6b8e07 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-#^NA%Cx&(BWL^R}Y)RhkE)4&H ztS3_(q9y@p&H|6fVg?3oVGw3ym^DWND9B#o>FdgVn@xyURqSfhEm@#Ywx^3@NXEUl z*AH?wIPkC>=#6Om8(vm>M2yMKFZG)&6LaH+tC4dZwXUb=%$+LxyYG*R0vPxQdAiN7 zy?%V&yW%K_i08TO^*M88SwO%gy&NKHwfo$=Ee;@HH(y%quq;p7VbeIEwG5uFelF{r G5}E+wRz#)% literal 0 HcmV?d00001 diff --git a/Unuk-QT/Makefile b/Unuk-QT/Makefile index 56bbf01..51bb948 100644 --- a/Unuk-QT/Makefile +++ b/Unuk-QT/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: Unuk-QT -# Generated by qmake (2.01a) (Qt 4.7.3) on: Wed Nov 9 13:10:07 2011 +# Generated by qmake (2.01a) (Qt 4.7.3) on: Wed Nov 9 15:15:42 2011 # Project: Unuk-QT.pro # Template: app # Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro @@ -53,7 +53,8 @@ SOURCES = ../src/libUnuk/Debug.cpp \ ../src/libUnuk/Rect.cpp \ ../src/libUnuk/ImageLoader.cpp \ ../src/libUnuk/TextureManager.cpp \ - ../src/libUnuk/Texture.cpp + ../src/libUnuk/Texture.cpp \ + ../src/libUnuk/Text.cpp OBJECTS = Debug.o \ main.o \ Input.o \ @@ -64,7 +65,8 @@ OBJECTS = Debug.o \ Rect.o \ ImageLoader.o \ TextureManager.o \ - Texture.o + Texture.o \ + Text.o DIST = /usr/share/qt4/mkspecs/common/g++.conf \ /usr/share/qt4/mkspecs/common/unix.conf \ /usr/share/qt4/mkspecs/common/linux.conf \ @@ -167,7 +169,7 @@ qmake: FORCE dist: @$(CHK_DIR_EXISTS) .tmp/Unuk-QT1.0.0 || $(MKDIR) .tmp/Unuk-QT1.0.0 - $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.h ../src/Libs/wglext.h ../src/Libs/glxext.h ../src/libUnuk/Input.h ../src/libUnuk/Rect.h ../src/libUnuk/Timer.h ../src/libUnuk/Font.h ../Constants.h ../src/Unuk/Constants.h ../src/libUnuk/ApplySurface.h ../src/Unuk/Globals.h ../src/libUnuk/ImageLoader.h ../src/libUnuk/TextureManager.h ../src/libUnuk/Texture.h .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.cpp ../src/Unuk/main.cpp ../src/libUnuk/Input.cpp ../src/libUnuk/Timer.cpp ../src/libUnuk/Font.cpp ../src/libUnuk/ApplySurface.cpp ../src/Unuk/Globals.cpp ../src/libUnuk/Rect.cpp ../src/libUnuk/ImageLoader.cpp ../src/libUnuk/TextureManager.cpp ../src/libUnuk/Texture.cpp .tmp/Unuk-QT1.0.0/ && (cd `dirname .tmp/Unuk-QT1.0.0` && $(TAR) Unuk-QT1.0.0.tar Unuk-QT1.0.0 && $(COMPRESS) Unuk-QT1.0.0.tar) && $(MOVE) `dirname .tmp/Unuk-QT1.0.0`/Unuk-QT1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Unuk-QT1.0.0 + $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.h ../src/Libs/wglext.h ../src/Libs/glxext.h ../src/libUnuk/Input.h ../src/libUnuk/Rect.h ../src/libUnuk/Timer.h ../src/libUnuk/Font.h ../Constants.h ../src/Unuk/Constants.h ../src/libUnuk/ApplySurface.h ../src/Unuk/Globals.h ../src/libUnuk/ImageLoader.h ../src/libUnuk/TextureManager.h ../src/libUnuk/Texture.h ../src/libUnuk/Text.h .tmp/Unuk-QT1.0.0/ && $(COPY_FILE) --parents ../src/libUnuk/Debug.cpp ../src/Unuk/main.cpp ../src/libUnuk/Input.cpp ../src/libUnuk/Timer.cpp ../src/libUnuk/Font.cpp ../src/libUnuk/ApplySurface.cpp ../src/Unuk/Globals.cpp ../src/libUnuk/Rect.cpp ../src/libUnuk/ImageLoader.cpp ../src/libUnuk/TextureManager.cpp ../src/libUnuk/Texture.cpp ../src/libUnuk/Text.cpp .tmp/Unuk-QT1.0.0/ && (cd `dirname .tmp/Unuk-QT1.0.0` && $(TAR) Unuk-QT1.0.0.tar Unuk-QT1.0.0 && $(COMPRESS) Unuk-QT1.0.0.tar) && $(MOVE) `dirname .tmp/Unuk-QT1.0.0`/Unuk-QT1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Unuk-QT1.0.0 clean:compiler_clean @@ -259,6 +261,13 @@ Texture.o: ../src/libUnuk/Texture.cpp ../src/libUnuk/Texture.h \ ../src/libUnuk/ApplySurface.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o Texture.o ../src/libUnuk/Texture.cpp +Text.o: ../src/libUnuk/Text.cpp ../src/libUnuk/Text.h \ + ../src/Unuk/Globals.h \ + ../src/libUnuk/ApplySurface.h \ + ../src/libUnuk/Debug.h \ + ../src/libUnuk/Font.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o Text.o ../src/libUnuk/Text.cpp + ####### Install install: FORCE diff --git a/Unuk-QT/Unuk-QT.pro b/Unuk-QT/Unuk-QT.pro index b33f685..18a0e40 100644 --- a/Unuk-QT/Unuk-QT.pro +++ b/Unuk-QT/Unuk-QT.pro @@ -18,7 +18,8 @@ HEADERS += ../src/libUnuk/Debug.h \ ../src/Unuk/Globals.h \ ../src/libUnuk/ImageLoader.h \ ../src/libUnuk/TextureManager.h \ - ../src/libUnuk/Texture.h + ../src/libUnuk/Texture.h \ + ../src/libUnuk/Text.h SOURCES += ../src/libUnuk/Debug.cpp \ ../src/Unuk/main.cpp \ ../src/libUnuk/Input.cpp \ @@ -29,4 +30,5 @@ SOURCES += ../src/libUnuk/Debug.cpp \ ../src/libUnuk/Rect.cpp \ ../src/libUnuk/ImageLoader.cpp \ ../src/libUnuk/TextureManager.cpp \ - ../src/libUnuk/Texture.cpp + ../src/libUnuk/Texture.cpp \ + ../src/libUnuk/Text.cpp diff --git a/src/libUnuk/Text.cpp b/src/libUnuk/Text.cpp new file mode 100644 index 0000000..a35eec3 --- /dev/null +++ b/src/libUnuk/Text.cpp @@ -0,0 +1,112 @@ +#include "Text.h" + +TTF_Font* Text::verySmallFont = NULL; +TTF_Font* Text::smallFont = NULL; +TTF_Font* Text::mediumFont = NULL; +TTF_Font* Text::largeFont = NULL; + +Text::Text(void) { + m_text = NULL; +} + +Text::~Text(void) { + assert(m_text != NULL); + SDL_FreeSurface(m_text); +} + +void Text::LoadFonts(void) { + // Load the fonts if they are not already in memory. + assert(verySmallFont == NULL); + assert(smallFont == NULL); + assert(mediumFont == NULL); + assert(largeFont == NULL); + + verySmallFont = Font("../Data/Media/Fonts/Enigma_2.ttf", 16); + smallFont = Font("../Data/Media/Fonts/Enigma_2.ttf", 23); + mediumFont = Font("../Data/Media/Fonts/Enigma_2.ttf", 27); + largeFont = Font("../Data/Media/Fonts/Enigma_2.ttf", 32); +} + +void Text::FreeFonts(void) { + // If the fonts are loaded, then free them. + assert(verySmallFont != NULL); + assert(smallFont != NULL); + assert(mediumFont != NULL); + assert(largeFont != NULL); + + TTF_CloseFont(verySmallFont); + TTF_CloseFont(smallFont); + TTF_CloseFont(mediumFont); + TTF_CloseFont(largeFont); +} + +void Text::SetXY(int xArg, int yArg) { + x = xArg; + y = yArg; +} + +int Text::SetTextBlended(string textArg, string size, SDL_Color colour) { + m_textContents = textArg; + + if(m_text != NULL) { + SDL_FreeSurface(m_text); + } + + if(size == "vsmall") { + m_text = TTF_RenderText_Blended(verySmallFont, textArg.c_str(), colour); + return 1; + } + else if(size == "small") { + m_text = TTF_RenderText_Blended(smallFont, textArg.c_str(), colour); + return 1; + } + else if(size == "medium") { + m_text = TTF_RenderText_Blended(mediumFont, textArg.c_str(), colour); + return 1; + } + else if(size == "large") { + m_text = TTF_RenderText_Blended(largeFont, textArg.c_str(), colour); + return 1; + } else { + Debug::logger->message("Text::SetTextBlended(): Invalid size argument %s. Defaulted to small.", size.c_str()); + m_text = TTF_RenderText_Blended(smallFont, textArg.c_str(), colour); + return 0; + } +} + +int Text::SetTextShaded(string textArg, string size, SDL_Color colour, SDL_Color bgColour) { + m_textContents = textArg; + + if(m_text != NULL) { + SDL_FreeSurface(m_text); + } + + if(size == "vsmall") { + m_text = TTF_RenderText_Shaded(verySmallFont, textArg.c_str(), colour, bgColour); + return 1; + } + else if(size == "small") { + m_text = TTF_RenderText_Shaded(smallFont, textArg.c_str(), colour, bgColour); + return 1; + } + else if(size == "medium") { + m_text = TTF_RenderText_Shaded(mediumFont, textArg.c_str(), colour, bgColour); + return 1; + } + else if(size == "large") { + m_text = TTF_RenderText_Shaded(largeFont, textArg.c_str(), colour, bgColour); + return 1; + } else { + Debug::logger->message("Text::SetTextBlended(): Invalid size argument %s. Defaulted to small.", size.c_str()); + m_text = TTF_RenderText_Shaded(smallFont, textArg.c_str(), colour, bgColour); + return 0; + } +} + +void Text::Render(void) { + ApplySurface(x, y, m_text, screen); +} + +void Text::RenderLiteral(void) { + ApplySurfaceLiteral(x, y, m_text, screen); +} diff --git a/src/libUnuk/Text.h b/src/libUnuk/Text.h new file mode 100644 index 0000000..042987c --- /dev/null +++ b/src/libUnuk/Text.h @@ -0,0 +1,50 @@ +#ifndef _TEXT_H_ +#define _TEXT_H_ +#include +#include +#include + +#include "../Unuk/Globals.h" +#include "ApplySurface.h" +#include "Font.h" +#include "Debug.h" +using namespace std; + +class Text { +public: + Text(void); + ~Text(void); + + static void LoadFonts(void); + static void FreeFonts(void); + + int GetWidth(void) { return m_text->w; } + int GetHeight(void) { return m_text->h; } + int GetX(void) { return x; } + int GetY(void) { return y; } + + string GetText(void) { return m_textContents; } + SDL_Color GetColour(void) { return m_textColour; } + + void SetXY(int xArg, int yArg); + + int SetTextBlended(string textArg, string size, SDL_Color); + int SetTextShaded(string textArg, string size, SDL_Color, SDL_Color); + + void Render(void); + void RenderLiteral(void); + +private: + int x, y, w, h; + + string m_textContents; + SDL_Color m_textColour; + SDL_Surface* m_text; + + static TTF_Font* verySmallFont; + static TTF_Font* smallFont; + static TTF_Font* mediumFont; + static TTF_Font* largeFont; +}; + +#endif