aboutsummaryrefslogtreecommitdiff
path: root/test/05Font/main.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-10-10 13:10:23 +0800
committerchai <chaifix@163.com>2018-10-10 13:10:23 +0800
commit498664ceba42e3b609e4464c246de164c61775c7 (patch)
treec1741b8ba567d5d0aafef7831298bdddb348b7d7 /test/05Font/main.cpp
parent95c088f3e48321c155eabc00fc4710692405855d (diff)
*update
Diffstat (limited to 'test/05Font/main.cpp')
-rw-r--r--test/05Font/main.cpp70
1 files changed, 48 insertions, 22 deletions
diff --git a/test/05Font/main.cpp b/test/05Font/main.cpp
index 3b58bae..3ce8183 100644
--- a/test/05Font/main.cpp
+++ b/test/05Font/main.cpp
@@ -10,13 +10,14 @@ Font* font = nullptr;
Canvas* canvas;
FontData* data = nullptr;
Shader* shader = nullptr;
+Shader* shader2 = nullptr;
Page* page = nullptr;
Texture* tex = nullptr;
float dt;
void onLoad()
{
- const char* program = R"(
+ const char* font_shader = R"(
#VERTEX_SHADER
Vertex vert(Vertex v)
@@ -28,8 +29,6 @@ Vertex vert(Vertex v)
#FRAGMENT_SHADER
-vec2 stepSize = vec2(0.02f, 0.02f);
-
Color frag(Color col, Texture tex, Vertex v)
{
return vec4(col.rgb, texel(tex, v.uv).a);
@@ -37,15 +36,37 @@ Color frag(Color col, Texture tex, Vertex v)
#END_FRAGMENT_SHADER
)";
- shader = Shader::createShader(program);
+ 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);
+}
+
+#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 = FontData::createFontData((const unsigned char*)buffer.data, buffer.size);
- font = Font::createFont(data, 18);
- page = font->typeset(u8R"(
-平安時代中期の物語。紫式部著。ただし,そのすべてが紫式部の筆に成るのでは
+ font = Font::createFont(data, 15);
+ page = font->typeset(u8R"(平安時代中期の物語。紫式部著。ただし,そのすべてが紫式部の筆に成るのでは
ないとする説もある。 54帖。寛弘 (1004~12) 頃成立か。物語は3部に分けてみ
ることができる。第1部は,容貌,才能などすべてにすぐれた主人公光源氏が,多
啊哈噶科膜卡して広く迎えられている。貴族社会の苦悩を摘出したところに磁瓷得
@@ -61,7 +82,7 @@ Color frag(Color col, Texture tex, Vertex v)
》开始在日本东京电视台播出。2004年,漫画进而改编成电影。2006年,漩涡鸣人入选
美国《新闻周刊》日文版于10月18日发行的特集中选出的“全世界最受尊敬的100位日本
人”。[2]
-)", 20, 0);
+)", 17, 0);
delete data;
//canvas = Canvas::createCanvas(100, 100);
//page = font->typeset("こんにちは世界!", 120, 20);
@@ -69,7 +90,22 @@ Color frag(Color col, Texture tex, Vertex v)
fs->read("img.png", &buffer);
Bitmap* bitmap = Bitmap::createBitmap(buffer.data, buffer.size);
tex = Texture::createTexture(bitmap);
- canvas = Canvas::createCanvas(100, 100);
+ canvas = Canvas::createCanvas(page->width, page->height);
+
+ 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();
}
void onEvent(jin::input::Event* e)
@@ -90,23 +126,13 @@ void onDraw()
glColor4f(1, 1, 1, 1);
//gl.pushColor(32, 32, 32, 255);
//rect(FILL, 0, 0, 500, 500);
- shader->use();
//circle(RenderMode::LINE, 50, 50, 30);
//tex->draw(0, 0, 1, 1, 0);
//tex->draw(20, 50, 1, 1, 0);
//shader->sendFloat("dt", dt);
- Canvas::bind(canvas);
- if (font != nullptr)
- {
- //font->print(u8"Hello,你好\n啊 world!", 10, 10);
- //font->print(u8"Привет мир!", 10, 10 + 15 * 1);
- font->print(page, 12, 10 + 15 * 2);
- //font->print(u8"你好世界!", 10, 10 + 15*3);
- //font->render(page);
- }
- Canvas::unbind();
- canvas->draw(0, 0, 1, 1, 0);
- shader->unuse();
+ shader2->use();
+ canvas->draw(20 * sin(dt), 10 * cos(dt), 1, 1, 0);
+ shader2->unuse();
}
int main(int argc, char* argv[])