skip apple pencil first n samples to overcome the initial pressure spike
This commit is contained in:
@@ -1861,15 +1861,14 @@
|
||||
DEVELOPMENT_TEAM = ERD9AYQ49S;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/libs/hockeyapp/HockeySDK-iOS",
|
||||
"$(PROJECT_DIR)/libs/hockeyapp/HockeySDK-iOS/HockeySDK.embeddedframework",
|
||||
"libs/hockeyapp/HockeySDK-iOS",
|
||||
"libs/hockeyapp/HockeySDK-iOS/HockeySDK.embeddedframework",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
libs/stb,
|
||||
libs/glm,
|
||||
libs/yoga,
|
||||
libs/tinyxml2,
|
||||
/opt/local/include,
|
||||
libs/jpeg,
|
||||
libs/poly2tri/poly2tri,
|
||||
libs/base64,
|
||||
@@ -1881,7 +1880,7 @@
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"libs/curl-android-ios/iOS",
|
||||
"$(PROJECT_DIR)/libs/libSonarPen",
|
||||
libs/libSonarPen,
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
@@ -1900,15 +1899,14 @@
|
||||
DEVELOPMENT_TEAM = ERD9AYQ49S;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/libs/hockeyapp/HockeySDK-iOS",
|
||||
"$(PROJECT_DIR)/libs/hockeyapp/HockeySDK-iOS/HockeySDK.embeddedframework",
|
||||
"libs/hockeyapp/HockeySDK-iOS",
|
||||
"libs/hockeyapp/HockeySDK-iOS/HockeySDK.embeddedframework",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
libs/stb,
|
||||
libs/glm,
|
||||
libs/yoga,
|
||||
libs/tinyxml2,
|
||||
/opt/local/include,
|
||||
libs/jpeg,
|
||||
libs/poly2tri/poly2tri,
|
||||
libs/base64,
|
||||
@@ -1920,7 +1918,7 @@
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"libs/curl-android-ios/iOS",
|
||||
"$(PROJECT_DIR)/libs/libSonarPen",
|
||||
libs/libSonarPen,
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.omixlab.panopainter.ios;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
|
||||
@@ -206,6 +206,11 @@ void ui::Stroke::add_point(glm::vec2 pos, float pressure)
|
||||
#ifdef __IOS__
|
||||
m_curve = glm::min(m_curve + 0.1f, 1.f);
|
||||
//pressure = pressure * glm::pow(m_curve, 2.f);
|
||||
if (m_hold_points.size() < 5)
|
||||
{
|
||||
m_hold_points.push_back({pos, pressure});
|
||||
return;
|
||||
}
|
||||
#endif // __IOS__
|
||||
//m_pressure_buff.add(pressure);
|
||||
//pressure = m_pressure_buff.average();
|
||||
@@ -227,6 +232,7 @@ void ui::Stroke::add_point(glm::vec2 pos, float pressure)
|
||||
}
|
||||
void ui::Stroke::start(const ui::Brush& brush)
|
||||
{
|
||||
m_hold_points.clear();
|
||||
m_curve = 0.f;
|
||||
m_curve_angles.clear();
|
||||
m_pressure_buff.clear();
|
||||
|
||||
@@ -96,6 +96,7 @@ public:
|
||||
cbuffer<glm::vec3, 3> m_hsv_jitter;
|
||||
StrokeSample m_prev_sample;
|
||||
std::vector<Keypoint> m_keypoints;
|
||||
std::vector<std::pair<glm::vec2, float>> m_hold_points;
|
||||
std::vector<StrokeSample> m_samples;
|
||||
int m_last_kp;
|
||||
std::minstd_rand prng;
|
||||
|
||||
@@ -86,7 +86,7 @@ void CanvasModeBasicCamera::on_GestureEvent(GestureEvent* ge)
|
||||
|
||||
void CanvasModePen::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
{
|
||||
m_touching = (me->m_source == kEventSource::Touch);
|
||||
m_draw_tip = (me->m_source == kEventSource::Mouse);
|
||||
if (canvas->m_touch_lock && me->m_source == kEventSource::Touch)
|
||||
return;
|
||||
|
||||
@@ -178,7 +178,7 @@ void CanvasModePen::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
|
||||
void CanvasModePen::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const glm::mat4& camera)
|
||||
{
|
||||
if (!m_touching)
|
||||
if (m_draw_tip)
|
||||
{
|
||||
auto pos = m_resizing ? m_size_pos_start : m_cur_pos;
|
||||
if (App::I.keys[(int)kKey::KeyAlt] && !m_resizing)
|
||||
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
|
||||
class CanvasModePen : public CanvasMode
|
||||
{
|
||||
bool m_touching = true;
|
||||
bool m_draw_tip = false;
|
||||
bool m_dragging = false;
|
||||
glm::vec2 m_pan_start;
|
||||
glm::vec2 m_cur_pos;
|
||||
|
||||
Reference in New Issue
Block a user