Font loading progress

This commit is contained in:
2023-06-09 09:04:38 -07:00
parent 3ca30721b6
commit d70ae88359

View File

@ -0,0 +1,73 @@
// Copyright (c) 2023 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#include "NewTrueTypeAsset.hpp"
using namespace Dawn;
NewTrueTypeAsset::NewTrueTypeAsset(AssetManager *assMan, std::string name) :
Asset(assMan, name),
loader(name + ".newtruetype")
{
}
void NewTrueTypeAsset::updateSync() {
}
void NewTrueTypeAsset::updateAsync() {
if(this->state != NEW_TRUE_TYPE_ASSET_STATE_INITIAL) return;
this->state = NEW_TRUE_TYPE_ASSET_STATE_OPEN;
this->loader.open();
this->state = NEW_TRUE_TYPE_ASSET_STATE_VALIDATE_HEADER;
char buffer[1024];
this->loader.rewind();
size_t read = this->loader.read(buffer, sizeof(char) * 6);
assertTrue(read == (6 * sizeof(char)));
buffer[6] = '\0';
// Confirm "DE_TTF"
assertTrue(std::string(buffer) == "DE_TTF");
// Vertical bar
this->loader.read(buffer, 1);
assertTrue(buffer[0] == '|');
// Read version
this->state = NEW_TRUE_TYPE_ASSET_STATE_VALIDATE_VERSION;
read = this->loader.read(buffer, sizeof(char) * 5);
assertTrue(buffer[0] == '3');
assertTrue(buffer[1] == '.');
assertTrue(buffer[2] == '0');
assertTrue(buffer[3] == '0');
assertTrue(buffer[4] == '|');
// Read the count of font styles / variants.
this->state = NEW_TRUE_TYPE_ASSET_STATE_READ_VARIANT_COUNT;
read = this->loader.read(buffer, 64);
assertTrue(read > 0);
// Get position of vertical bar.
size_t i = 0;
while(buffer[i] != '|' && i < 64) i++;
assertTrue(buffer[i] == '|');
buffer[i] = '\0';
int32_t count = atoi(buffer);
assertTrue(count > 0);
// Now begin parsing each font style
while(true) {
}
}
NewTrueTypeAsset::~NewTrueTypeAsset() {
}