Fully removed the freetype-dl hard dependancy.
This commit is contained in:
parent
2a0d014356
commit
b9deda34a2
@ -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")
|
||||
|
@ -1,4 +0,0 @@
|
||||
|
||||
|
||||
#target_sources(glez PRIVATE
|
||||
#"${CMAKE_CURRENT_LIST_DIR}/mat4.c")
|
@ -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 */
|
@ -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__ */
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user