bugfixing
							parent
							
								
									6a86f5b533
								
							
						
					
					
						commit
						2fe40f7624
					
				|  | @ -161,6 +161,7 @@ WELLSPRINGAPI void Wellspring_DestroyPacker(Wellspring_Packer *packer); | |||
| #define Wellspring_fabs SDL_fabs | ||||
| #define Wellspring_assert SDL_assert | ||||
| #define Wellspring_strlen SDL_strlen | ||||
| #define Wellspring_sort SDL_qsort | ||||
| 
 | ||||
| #else | ||||
| 
 | ||||
|  | @ -178,6 +179,7 @@ WELLSPRINGAPI void Wellspring_DestroyPacker(Wellspring_Packer *packer); | |||
| #define Wellspring_fabs fabs | ||||
| #define Wellspring_assert assert | ||||
| #define Wellspring_strlen strlen | ||||
| #define Wellspring_sort qsort | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  |  | |||
|  | @ -25,7 +25,6 @@ | |||
|  */ | ||||
| 
 | ||||
| #include "Wellspring.h" | ||||
| #include "stb_rect_pack.h" | ||||
| 
 | ||||
| #define STBTT_malloc(x,u) ((void)(u),Wellspring_malloc(x)) | ||||
| #define STBTT_free(x,u) ((void)(u),Wellspring_free(x)) | ||||
|  | @ -42,6 +41,9 @@ | |||
| #define STBTT_assert Wellspring_assert | ||||
| #define STBTT_strlen Wellspring_strlen | ||||
| 
 | ||||
| #define STBRP_SORT Wellspring_sort | ||||
| #define STBRP_ASSERT Wellspring_assert | ||||
| 
 | ||||
| typedef uint8_t stbtt_uint8; | ||||
| typedef int8_t stbtt_int8; | ||||
| typedef uint16_t stbtt_uint16; | ||||
|  | @ -49,11 +51,18 @@ typedef int16_t stbtt_int16; | |||
| typedef uint32_t stbtt_uint32; | ||||
| typedef int32_t stbtt_int32; | ||||
| 
 | ||||
| #pragma GCC diagnostic ignored "-Wunused-function" | ||||
| 
 | ||||
| #define STBRP_STATIC | ||||
| #define STB_RECT_PACK_IMPLEMENTATION | ||||
| #include "stb_rect_pack.h" | ||||
| 
 | ||||
| #define STBTT_STATIC | ||||
| #define STB_TRUETYPE_IMPLEMENTATION | ||||
| #pragma GCC diagnostic ignored "-Wunused-function" | ||||
| #include "stb_truetype.h" | ||||
| 
 | ||||
| #pragma GCC diagnostic warning "-Wunused-function" | ||||
| 
 | ||||
| #define INITIAL_QUAD_CAPACITY 128 | ||||
| 
 | ||||
| /* Structs */ | ||||
|  | @ -200,8 +209,7 @@ uint32_t Wellspring_PackFontRanges( | |||
| 		return 0; | ||||
| 	} | ||||
| 
 | ||||
| 	myPacker->rangeCount += numRanges; | ||||
| 	myPacker->ranges = Wellspring_realloc(myPacker->ranges, sizeof(CharRange) * myPacker->rangeCount); | ||||
| 	myPacker->ranges = Wellspring_realloc(myPacker->ranges, sizeof(CharRange) * (myPacker->rangeCount + numRanges)); | ||||
| 
 | ||||
| 	for (i = 0; i < numRanges; i += 1) | ||||
| 	{ | ||||
|  | @ -212,7 +220,6 @@ uint32_t Wellspring_PackFontRanges( | |||
| 	} | ||||
| 
 | ||||
| 	myPacker->rangeCount += numRanges; | ||||
| 
 | ||||
| 	return 1; | ||||
| } | ||||
| 
 | ||||
|  | @ -267,7 +274,7 @@ uint8_t Wellspring_Draw( | |||
| 	stbtt_aligned_quad charQuad; | ||||
| 	uint32_t vertexBufferIndex; | ||||
| 	uint32_t indexBufferIndex; | ||||
| 	uint32_t i; | ||||
| 	uint32_t i, j; | ||||
| 
 | ||||
| 	for (i = 0; i < strLength; i += 1) | ||||
| 	{ | ||||
|  | @ -282,18 +289,27 @@ uint8_t Wellspring_Draw( | |||
| 			continue; | ||||
| 		} | ||||
| 
 | ||||
| 		rangeData = NULL; | ||||
| 
 | ||||
| 		/* Find the packed char data */ | ||||
| 		for (i = 0; i < myPacker->rangeCount; i += 1) | ||||
| 		for (j = 0; j < myPacker->rangeCount; j += 1) | ||||
| 		{ | ||||
| 			if ( | ||||
| 				codepoint >= myPacker->ranges[i].firstCodepoint && | ||||
| 				codepoint < myPacker->ranges[i].firstCodepoint + myPacker->ranges[i].charCount | ||||
| 				codepoint >= myPacker->ranges[j].firstCodepoint && | ||||
| 				codepoint < myPacker->ranges[j].firstCodepoint + myPacker->ranges[j].charCount | ||||
| 			) { | ||||
| 				rangeData = myPacker->ranges[i].data; | ||||
| 				glyphIndex = codepoint - myPacker->ranges[i].firstCodepoint; | ||||
| 				rangeData = myPacker->ranges[j].data; | ||||
| 				glyphIndex = codepoint - myPacker->ranges[j].firstCodepoint; | ||||
| 				break; | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		if (rangeData == NULL) | ||||
| 		{ | ||||
| 			/* Requested char wasn't packed! */ | ||||
| 			return 0; | ||||
| 		} | ||||
| 
 | ||||
| 		stbtt_GetPackedQuad( | ||||
| 			rangeData, | ||||
| 			myPacker->width, | ||||
|  | @ -403,6 +419,8 @@ void Wellspring_DestroyPacker(Wellspring_Packer *packer) | |||
| 	Packer* myPacker = (Packer*) packer; | ||||
| 	uint32_t i; | ||||
| 
 | ||||
| 	stbtt_PackEnd(myPacker->context); | ||||
| 
 | ||||
| 	for (i = 0; i < myPacker->rangeCount; i += 1) | ||||
| 	{ | ||||
| 		Wellspring_free(myPacker->ranges[i].data); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue