aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/src')
-rw-r--r--native/jni/src/proximity_info.cpp2
-rw-r--r--native/jni/src/proximity_info.h9
-rw-r--r--native/jni/src/proximity_info_utils.h6
3 files changed, 11 insertions, 6 deletions
diff --git a/native/jni/src/proximity_info.cpp b/native/jni/src/proximity_info.cpp
index d812745ca..81eb0b37d 100644
--- a/native/jni/src/proximity_info.cpp
+++ b/native/jni/src/proximity_info.cpp
@@ -15,6 +15,7 @@
*/
#include <cstring>
+#include <cmath>
#define LOG_TAG "LatinIME: proximity_info.cpp"
@@ -59,6 +60,7 @@ ProximityInfo::ProximityInfo(JNIEnv *env, const jstring localeJStr,
CELL_HEIGHT((keyboardHeight + gridHeight - 1) / gridHeight),
KEY_COUNT(min(keyCount, MAX_KEY_COUNT_IN_A_KEYBOARD)),
KEYBOARD_WIDTH(keyboardWidth), KEYBOARD_HEIGHT(keyboardHeight),
+ KEYBOARD_HYPOTENUSE(hypotf(KEYBOARD_WIDTH, KEYBOARD_HEIGHT)),
HAS_TOUCH_POSITION_CORRECTION_DATA(keyCount > 0 && keyXCoordinates && keyYCoordinates
&& keyWidths && keyHeights && keyCharCodes && sweetSpotCenterXs
&& sweetSpotCenterYs && sweetSpotRadii),
diff --git a/native/jni/src/proximity_info.h b/native/jni/src/proximity_info.h
index d42c72391..22bbdf165 100644
--- a/native/jni/src/proximity_info.h
+++ b/native/jni/src/proximity_info.h
@@ -62,6 +62,7 @@ class ProximityInfo {
int getGridHeight() const { return GRID_HEIGHT; }
int getKeyboardWidth() const { return KEYBOARD_WIDTH; }
int getKeyboardHeight() const { return KEYBOARD_HEIGHT; }
+ float getKeyboardHypotenuse() const { return KEYBOARD_HYPOTENUSE; }
int getKeyCenterXOfCodePointG(int charCode) const;
int getKeyCenterYOfCodePointG(int charCode) const;
@@ -69,15 +70,16 @@ class ProximityInfo {
int getKeyCenterYOfKeyIdG(int keyId) const;
int getKeyKeyDistanceG(int keyId0, int keyId1) const;
- void initializeProximities(const int *const inputCodes, const int *const inputXCoordinates,
- const int *const inputYCoordinates, const int inputSize, int *allInputCodes) const {
+ void AK_FORCE_INLINE initializeProximities(const int *const inputCodes,
+ const int *const inputXCoordinates, const int *const inputYCoordinates,
+ const int inputSize, int *allInputCodes) const {
ProximityInfoUtils::initializeProximities(inputCodes, inputXCoordinates, inputYCoordinates,
inputSize, mKeyXCoordinates, mKeyYCoordinates, mKeyWidths, mKeyHeights,
mProximityCharsArray, CELL_HEIGHT, CELL_WIDTH, GRID_WIDTH, MOST_COMMON_KEY_WIDTH,
KEY_COUNT, mLocaleStr, &mCodeToKeyMap, allInputCodes);
}
- int getKeyIndexOf(const int c) const {
+ int AK_FORCE_INLINE getKeyIndexOf(const int c) const {
return ProximityInfoUtils::getKeyIndexOf(KEY_COUNT, c, &mCodeToKeyMap);
}
@@ -97,6 +99,7 @@ class ProximityInfo {
const int KEY_COUNT;
const int KEYBOARD_WIDTH;
const int KEYBOARD_HEIGHT;
+ const float KEYBOARD_HYPOTENUSE;
const bool HAS_TOUCH_POSITION_CORRECTION_DATA;
char mLocaleStr[MAX_LOCALE_STRING_LENGTH];
int *mProximityCharsArray;
diff --git a/native/jni/src/proximity_info_utils.h b/native/jni/src/proximity_info_utils.h
index c50df57f9..51cafba2c 100644
--- a/native/jni/src/proximity_info_utils.h
+++ b/native/jni/src/proximity_info_utils.h
@@ -28,7 +28,7 @@
namespace latinime {
class ProximityInfoUtils {
public:
- static int getKeyIndexOf(const int keyCount, const int c,
+ static AK_FORCE_INLINE int getKeyIndexOf(const int keyCount, const int c,
const hash_map_compat<int, int> *const codeToKeyMap) {
if (keyCount == 0) {
// We do not have the coordinate data
@@ -45,7 +45,7 @@ class ProximityInfoUtils {
return NOT_AN_INDEX;
}
- static void initializeProximities(const int *const inputCodes,
+ static AK_FORCE_INLINE void initializeProximities(const int *const inputCodes,
const int *const inputXCoordinates, const int *const inputYCoordinates,
const int inputSize, const int *const keyXCoordinates,
const int *const keyYCoordinates, const int *const keyWidths, const int *keyHeights,
@@ -151,7 +151,7 @@ class ProximityInfoUtils {
return left < right && top < bottom && x >= left && x < right && y >= top && y < bottom;
}
- static void calculateProximities(const int *const keyXCoordinates,
+ static AK_FORCE_INLINE void calculateProximities(const int *const keyXCoordinates,
const int *const keyYCoordinates, const int *const keyWidths, const int *keyHeights,
const int *const proximityCharsArray, const int cellHeight, const int cellWidth,
const int gridWidth, const int mostCommonKeyWidth, const int keyCount,