reduced canvas framebuffer resolution for hdpi, update android project
This commit is contained in:
@@ -58,6 +58,7 @@ add_library(
|
|||||||
../src/app_events.cpp
|
../src/app_events.cpp
|
||||||
../src/app_layout.cpp
|
../src/app_layout.cpp
|
||||||
../src/app_shaders.cpp
|
../src/app_shaders.cpp
|
||||||
|
../src/app_vr.cpp
|
||||||
../src/brush.cpp
|
../src/brush.cpp
|
||||||
../src/canvas.cpp
|
../src/canvas.cpp
|
||||||
../src/canvas_modes.cpp
|
../src/canvas_modes.cpp
|
||||||
@@ -89,6 +90,7 @@ add_library(
|
|||||||
../src/node_panel_brush.cpp
|
../src/node_panel_brush.cpp
|
||||||
../src/node_panel_color.cpp
|
../src/node_panel_color.cpp
|
||||||
../src/node_panel_grid.cpp
|
../src/node_panel_grid.cpp
|
||||||
|
../src/node_panel_floating.cpp
|
||||||
../src/node_panel_layer.cpp
|
../src/node_panel_layer.cpp
|
||||||
../src/node_panel_stroke.cpp
|
../src/node_panel_stroke.cpp
|
||||||
../src/node_panel_quick.cpp
|
../src/node_panel_quick.cpp
|
||||||
@@ -105,6 +107,7 @@ add_library(
|
|||||||
../src/abr.cpp
|
../src/abr.cpp
|
||||||
../src/binary_stream.cpp
|
../src/binary_stream.cpp
|
||||||
../src/serializer.cpp
|
../src/serializer.cpp
|
||||||
|
../src/settings.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(native-lib PRIVATE
|
target_include_directories(native-lib PRIVATE
|
||||||
|
|||||||
@@ -903,6 +903,7 @@ void Canvas::stroke_commit()
|
|||||||
|
|
||||||
void Canvas::draw_merge(std::array<bool, 6> faces /*= SIXPLETTE(false)*/)
|
void Canvas::draw_merge(std::array<bool, 6> faces /*= SIXPLETTE(false)*/)
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
gl_state gl;
|
gl_state gl;
|
||||||
gl.save();
|
gl.save();
|
||||||
glViewport(0, 0, m_width, m_height);
|
glViewport(0, 0, m_width, m_height);
|
||||||
|
|||||||
@@ -66,9 +66,6 @@ void NodeCanvas::draw()
|
|||||||
float zoom = root()->m_zoom;
|
float zoom = root()->m_zoom;
|
||||||
auto box = m_clip * zoom;
|
auto box = m_clip * zoom;
|
||||||
glm::ivec4 c = (glm::ivec4)glm::vec4(box.x, (int)(vp[3] - box.y - box.w), box.z, box.w);
|
glm::ivec4 c = (glm::ivec4)glm::vec4(box.x, (int)(vp[3] - box.y - box.w), box.z, box.w);
|
||||||
glClearColor(1, 1, 1, 0);
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
glViewport(c.x + App::I.off_x, c.y + App::I.off_y, c.z, c.w);
|
|
||||||
|
|
||||||
//m_canvas->m_cam_rot = m_pan * 0.003f;
|
//m_canvas->m_cam_rot = m_pan * 0.003f;
|
||||||
|
|
||||||
@@ -111,6 +108,12 @@ void NodeCanvas::draw()
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool draw_merged = !(m_canvas->m_current_mode == kCanvasMode::Camera);
|
bool draw_merged = !(m_canvas->m_current_mode == kCanvasMode::Camera);
|
||||||
|
draw_merged = false;
|
||||||
|
|
||||||
|
m_rtt.bindFramebuffer();
|
||||||
|
glClearColor(1, 1, 1, 0);
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
glViewport(0, 0, m_rtt.getWidth(), m_rtt.getHeight());
|
||||||
|
|
||||||
if (draw_merged)
|
if (draw_merged)
|
||||||
{
|
{
|
||||||
@@ -401,18 +404,18 @@ void NodeCanvas::draw()
|
|||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
|
|
||||||
//draw the grid
|
//draw the grid
|
||||||
for (int plane_index = 0; plane_index < 6; plane_index++)
|
//for (int plane_index = 0; plane_index < 6; plane_index++)
|
||||||
{
|
//{
|
||||||
auto plane_mvp = proj * camera *
|
// auto plane_mvp = proj * camera *
|
||||||
glm::scale(glm::vec3(m_canvas->m_order.size() + 500.f)) *
|
// glm::scale(glm::vec3(m_canvas->m_order.size() + 500.f)) *
|
||||||
m_canvas->m_plane_transform[plane_index] *
|
// m_canvas->m_plane_transform[plane_index] *
|
||||||
glm::translate(glm::vec3(0, 0, -1.f));
|
// glm::translate(glm::vec3(0, 0, -1.f));
|
||||||
|
|
||||||
ShaderManager::use(kShader::Checkerboard);
|
// ShaderManager::use(kShader::Checkerboard);
|
||||||
ShaderManager::u_int(kShaderUniform::Colorize, false);
|
// ShaderManager::u_int(kShaderUniform::Colorize, false);
|
||||||
ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp);
|
// ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp);
|
||||||
m_face_plane.draw_fill();
|
// m_face_plane.draw_fill();
|
||||||
}
|
//}
|
||||||
|
|
||||||
// draw the layers
|
// draw the layers
|
||||||
m_sampler.bind(0);
|
m_sampler.bind(0);
|
||||||
@@ -426,6 +429,23 @@ void NodeCanvas::draw()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_rtt.unbindFramebuffer();
|
||||||
|
|
||||||
|
glClearColor(1, 1, 1, 0);
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
glViewport(c.x + App::I.off_x, c.y + App::I.off_y, c.z, c.w);
|
||||||
|
|
||||||
|
// draw the canvas
|
||||||
|
m_sampler_linear.bind(0);
|
||||||
|
glActiveTexture(GL_TEXTURE0);
|
||||||
|
m_rtt.bindTexture();
|
||||||
|
ShaderManager::use(kShader::Texture);
|
||||||
|
ShaderManager::u_int(kShaderUniform::Tex, 0);
|
||||||
|
ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho<float>(-1, 1, -1, 1));
|
||||||
|
m_face_plane.draw_fill();
|
||||||
|
m_rtt.unbindTexture();
|
||||||
|
|
||||||
|
|
||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
if (m_canvas->m_smask_active || m_canvas->m_current_mode == kCanvasMode::Copy || m_canvas->m_current_mode == kCanvasMode::Cut)
|
if (m_canvas->m_smask_active || m_canvas->m_current_mode == kCanvasMode::Copy || m_canvas->m_current_mode == kCanvasMode::Cut)
|
||||||
{
|
{
|
||||||
@@ -457,7 +477,7 @@ void NodeCanvas::handle_resize(glm::vec2 old_size, glm::vec2 new_size)
|
|||||||
if (new_size.x != m_canvas->m_width || new_size.y != m_canvas->m_height)
|
if (new_size.x != m_canvas->m_width || new_size.y != m_canvas->m_height)
|
||||||
{
|
{
|
||||||
// actual screen size
|
// actual screen size
|
||||||
new_size = new_size * root()->m_zoom;
|
//new_size = new_size * root()->m_zoom;
|
||||||
#if defined(__IOS__) || defined(__ANDROID__)
|
#if defined(__IOS__) || defined(__ANDROID__)
|
||||||
m_canvas->m_mixer.create((int)new_size.x * m_canvas->m_mixer_scale,
|
m_canvas->m_mixer.create((int)new_size.x * m_canvas->m_mixer_scale,
|
||||||
(int)new_size.y * m_canvas->m_mixer_scale, -1, GL_RGBA16F);
|
(int)new_size.y * m_canvas->m_mixer_scale, -1, GL_RGBA16F);
|
||||||
@@ -467,6 +487,7 @@ void NodeCanvas::handle_resize(glm::vec2 old_size, glm::vec2 new_size)
|
|||||||
#endif
|
#endif
|
||||||
m_blender_rtt.create((int)new_size.x, (int)new_size.y, -1, GL_RGBA8);
|
m_blender_rtt.create((int)new_size.x, (int)new_size.y, -1, GL_RGBA8);
|
||||||
m_cache_rtt.create((int)new_size.x, (int)new_size.y, -1, GL_RGBA8);
|
m_cache_rtt.create((int)new_size.x, (int)new_size.y, -1, GL_RGBA8);
|
||||||
|
m_rtt.create((int)new_size.x, (int)new_size.y, -1, GL_RGBA8);
|
||||||
m_blender_bg.create((int)new_size.x, (int)new_size.y, GL_RGBA8);
|
m_blender_bg.create((int)new_size.x, (int)new_size.y, GL_RGBA8);
|
||||||
if (auto img = root()->find<NodeImageTexture>("tex-debug"))
|
if (auto img = root()->find<NodeImageTexture>("tex-debug"))
|
||||||
img->tex.assign(m_canvas->m_mixer.getTextureID());
|
img->tex.assign(m_canvas->m_mixer.getTextureID());
|
||||||
@@ -594,6 +615,7 @@ void NodeCanvas::destroy_immediate()
|
|||||||
Node::destroy_immediate();
|
Node::destroy_immediate();
|
||||||
m_blender_rtt.destroy();
|
m_blender_rtt.destroy();
|
||||||
m_cache_rtt.destroy();
|
m_cache_rtt.destroy();
|
||||||
|
m_rtt.destroy();
|
||||||
m_blender_bg.destroy();
|
m_blender_bg.destroy();
|
||||||
m_face_plane.destroy();
|
m_face_plane.destroy();
|
||||||
m_line.destroy();
|
m_line.destroy();
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ public:
|
|||||||
std::unique_ptr<Canvas> m_canvas;
|
std::unique_ptr<Canvas> m_canvas;
|
||||||
RTT m_blender_rtt;
|
RTT m_blender_rtt;
|
||||||
RTT m_cache_rtt;
|
RTT m_cache_rtt;
|
||||||
|
RTT m_rtt;
|
||||||
Texture2D m_blender_bg;
|
Texture2D m_blender_bg;
|
||||||
Sampler m_sampler;
|
Sampler m_sampler;
|
||||||
Sampler m_sampler_linear;
|
Sampler m_sampler_linear;
|
||||||
|
|||||||
Reference in New Issue
Block a user