Fully removed the freetype-dl hard dependancy.

This commit is contained in:
Rebekah 2022-04-05 14:19:48 -04:00
parent 2a0d014356
commit b9deda34a2
Signed by: oneechanhax
GPG Key ID: 183EB7902964DAE5
5 changed files with 2 additions and 213 deletions

View File

@ -21,7 +21,6 @@ target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/i
target_link_libraries(${PROJECT_NAME} ${GLEW_LIBRARIES} ${FREETYPE_LIBRARIES} z GL /usr/local/lib/libfreetype-gl.a)
add_subdirectory(src)
add_subdirectory(ftgl)
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME} DESTINATION "lib")
install(DIRECTORY include/glez DESTINATION "include")

View File

@ -1,4 +0,0 @@
#target_sources(glez PRIVATE
#"${CMAKE_CURRENT_LIST_DIR}/mat4.c")

View File

@ -1,22 +0,0 @@
/* Freetype GL - A C OpenGL Freetype engine
*
* Distributed under the OSI-approved BSD 2-Clause License. See accompanying
* file `LICENSE` for more details.
*/
#ifndef __FREETYPE_GL_H__
#define __FREETYPE_GL_H__
/* Mandatory */
#include "opengl.h"
#include "vec234.h"
#include "vector.h"
#include "texture-atlas.h"
#include "texture-font.h"
#ifdef __cplusplus
#ifndef NOT_USING_FT_GL_NAMESPACE
using namespace ftgl;
#endif /* NOT_USING_FT_GL_NAMESPACE */
#endif /* __cplusplus */
#endif /* FREETYPE_GL_H */

View File

@ -1,184 +0,0 @@
/* Freetype GL - A C OpenGL Freetype engine
*
* Distributed under the OSI-approved BSD 2-Clause License. See accompanying
* file `LICENSE` for more details.
* ============================================================================
*
*
* This source is based on the article by Jukka Jylänki :
* "A Thousand Ways to Pack the Bin - A Practical Approach to
* Two-Dimensional Rectangle Bin Packing", February 27, 2010.
*
* More precisely, this is an implementation of the Skyline Bottom-Left
* algorithm based on C++ sources provided by Jukka Jylänki at:
* http://clb.demon.fi/files/RectangleBinPack/
*
* ============================================================================
*/
#ifndef __TEXTURE_ATLAS_H__
#define __TEXTURE_ATLAS_H__
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif
#include "vector.h"
#include "vec234.h"
#ifdef __cplusplus
namespace ftgl
{
#endif
/**
* @file texture-atlas.h
* @author Nicolas Rougier (Nicolas.Rougier@inria.fr)
*
* @defgroup texture-atlas Texture atlas
*
* A texture atlas is used to pack several small regions into a single texture.
*
* The actual implementation is based on the article by Jukka Jylänki : "A
* Thousand Ways to Pack the Bin - A Practical Approach to Two-Dimensional
* Rectangle Bin Packing", February 27, 2010.
* More precisely, this is an implementation of the Skyline Bottom-Left
* algorithm based on C++ sources provided by Jukka Jylänki at:
* http://clb.demon.fi/files/RectangleBinPack/
*
*
* Example Usage:
* @code
* #include "texture-atlas.h"
*
* ...
*
* / Creates a new atlas of 512x512 with a depth of 1
* texture_atlas_t * atlas = texture_atlas_new( 512, 512, 1 );
*
* // Allocates a region of 20x20
* ivec4 region = texture_atlas_get_region( atlas, 20, 20 );
*
* // Fill region with some data
* texture_atlas_set_region( atlas, region.x, region.y, region.width,
* region.height, data, stride )
*
* ...
*
* @endcode
*
* @{
*/
/**
* A texture atlas is used to pack several small regions into a single texture.
*/
typedef struct texture_atlas_t
{
/**
* Allocated nodes
*/
vector_t *nodes;
/**
* Width (in pixels) of the underlying texture
*/
size_t width;
/**
* Height (in pixels) of the underlying texture
*/
size_t height;
/**
* Depth (in bytes) of the underlying texture
*/
size_t depth;
/**
* Allocated surface size
*/
size_t used;
/**
* Texture identity (OpenGL)
*/
unsigned int id;
/**
* Atlas data
*/
unsigned char *data;
/**
* Custom field
*/
char dirty;
} texture_atlas_t;
/**
* Creates a new empty texture atlas.
*
* @param width width of the atlas
* @param height height of the atlas
* @param depth bit depth of the atlas
* @return a new empty texture atlas.
*
*/
texture_atlas_t *texture_atlas_new(const size_t width, const size_t height,
const size_t depth);
/**
* Deletes a texture atlas.
*
* @param self a texture atlas structure
*
*/
void texture_atlas_delete(texture_atlas_t *self);
/**
* Allocate a new region in the atlas.
*
* @param self a texture atlas structure
* @param width width of the region to allocate
* @param height height of the region to allocate
* @return Coordinates of the allocated region
*
*/
ivec4 texture_atlas_get_region(texture_atlas_t *self, const size_t width,
const size_t height);
/**
* Upload data to the specified atlas region.
*
* @param self a texture atlas structure
* @param x x coordinate the region
* @param y y coordinate the region
* @param width width of the region
* @param height height of the region
* @param data data to be uploaded into the specified region
* @param stride stride of the data
*
*/
void texture_atlas_set_region(texture_atlas_t *self, const size_t x,
const size_t y, const size_t width,
const size_t height, const unsigned char *data,
const size_t stride);
/**
* Remove all allocated regions from the atlas.
*
* @param self a texture atlas structure
*/
void texture_atlas_clear(texture_atlas_t *self);
/** @} */
#ifdef __cplusplus
}
}
#endif
#endif /* __TEXTURE_ATLAS_H__ */

View File

@ -31,7 +31,7 @@ void internal_draw_string(float x, float y, const std::string& string,
glez::bind(fnt->atlas->id);
if (fnt->atlas->dirty) {
if (fnt->atlas->modified) {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
@ -39,7 +39,7 @@ void internal_draw_string(float x, float y, const std::string& string,
glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, fnt->atlas->width,
fnt->atlas->height, 0, GL_RED, GL_UNSIGNED_BYTE,
fnt->atlas->data);
fnt->atlas->dirty = 0;
fnt->atlas->modified = 0;
}
const char* sstring = string.c_str();