aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/06TextureFont/main.cpp87
1 files changed, 18 insertions, 69 deletions
diff --git a/test/06TextureFont/main.cpp b/test/06TextureFont/main.cpp
index 9551604..1512ad6 100644
--- a/test/06TextureFont/main.cpp
+++ b/test/06TextureFont/main.cpp
@@ -1,4 +1,4 @@
-#include <iostream>
+#include <iostream>
#include "jin.h"
using namespace jin::core;
@@ -6,13 +6,16 @@ using namespace jin::graphics;
using namespace jin::input;
using namespace jin::audio;
using namespace jin::filesystem;
-Font* font = nullptr;
-Canvas* canvas;
-TTFData* data = nullptr;
Shader* shader = nullptr;
-Shader* shader2 = nullptr;
-Page* page = nullptr;
-Texture* tex = nullptr;
+TextureFont* font = nullptr;
+Text text = Text(
+Encode::UTF8,
+u8R"(
+this is a test
+you know what i mean
+texture font test ^_^
+)"
+);
float dt;
void onLoad()
@@ -31,68 +34,19 @@ Vertex vert(Vertex v)
Color frag(Color col, Texture tex, Vertex v)
{
- return vec4(col.rgb, texel(tex, v.uv).a);
-}
-
-#END_FRAGMENT_SHADER
- )";
- const char* canvas_shader = R"(
-#VERTEX_SHADER
-
-Vertex vert(Vertex v)
-{
- return v;
-}
-
-#END_VERTEX_SHADER
-
-#FRAGMENT_SHADER
-
-Color frag(Color col, Texture tex, Vertex v)
-{
- if(v.uv.x <= 0.002f || v.uv.x >= 0.998f || v.uv.y <= 0.005f || v.uv.y >= 0.995f)
- return vec4(1, 1, 1, 1);
- else
- return texel(tex, v.uv);
+ return col * texel(tex, v.uv);
}
#END_FRAGMENT_SHADER
)";
shader = Shader::createShader(font_shader);
- shader2 = Shader::createShader(canvas_shader);
Filesystem* fs = Filesystem::get();
fs->mount("../Debug");
Buffer buffer;
- fs->read("font.ttf", &buffer);
- data = TTFData::createTTFData((const unsigned char*)buffer.data, buffer.size);
- font = TTF::createTTF(data, 15);
- const char* str = u8R"(Դ爐󤸤Τ)";
- int l = strlen(str);
- Text text = Text(Encode::UTF8, str, strlen(str));
- page = font->typeset(text, 15, 0);
- delete data;
- //canvas = Canvas::createCanvas(100, 100);
- //page = font->typeset("ˤ!", 120, 20);
- buffer.clear();
- fs->read("img.png", &buffer);
+ fs->read("font2.png", &buffer);
Bitmap* bitmap = Bitmap::createBitmap(buffer.data, buffer.size);
- tex = Texture::createTexture(bitmap);
- canvas = Canvas::createCanvas(page->size.w, page->size.h);
-
- Canvas::bind(canvas);
- glClear(GL_COLOR_BUFFER_BIT);
- glColor4f(1, 1, 1, 1);
- if (font != nullptr)
- {
- //font->print(u8"Hello,\n world!", 10, 10);
- //font->print(u8"ڧӧ֧ ާڧ!", 10, 10 + 15 * 1);
- shader->use();
- font->print(page, 0, 0);
- shader->unuse();
- //font->print(u8"!", 10, 10 + 15*3);
- //font->render(page);
- }
- Canvas::unbind();
+ const char* charset = u8R"( !"#$£€%&'()*+,-./0123456789;:<=>?`'^@abcdefghijklmnopqrstuvwxyz|~[\]_)";
+ font = TextureFont::createTextureFont(bitmap, Text(Encode::UTF8, charset, strlen(charset)), Color(255, 0, 0, 255), 16);
}
void onEvent(jin::input::Event* e)
@@ -109,17 +63,12 @@ void onUpdate(int ms)
void onDraw()
{
+ gl.setClearColor(255, 255, 255, 255);
glClear(GL_COLOR_BUFFER_BIT);
glColor4f(1, 1, 1, 1);
- //gl.pushColor(32, 32, 32, 255);
- //rect(FILL, 0, 0, 500, 500);
- //circle(RenderMode::LINE, 50, 50, 30);
- //tex->draw(0, 0, 1, 1, 0);
- //tex->draw(20, 50, 1, 1, 0);
- //shader->sendFloat("dt", dt);
- shader2->use();
- canvas->draw(20 * sin(dt), 10 * cos(dt), 1, 1, 0);
- shader2->unuse();
+ shader->use();
+ font->print(text, 10, 10, 16);
+ shader->unuse();
}
int main(int argc, char* argv[])