int Dice::combinedResult() const noexcept { const jmethodID methodID = jniEnv().GetMethodID(_diceClass,"combinedResult","()I"); assert(nullptr != methodID); return jniEnv().CallIntMethod(_diceObject,methodID); }
int Dice::coloredDieValue() const noexcept { const jmethodID methodID = jniEnv().GetMethodID(_diceClass,"coloredDieValue","()I"); assert(nullptr != methodID); return jniEnv().CallIntMethod(_diceObject,methodID); }
Dice::Dice() { _diceClass = jniEnv().FindClass("jasl/utilities/Dice"); assert(nullptr != _diceClass); const jmethodID constructorID = jniEnv().GetMethodID(_diceClass,"<init>","()V"); assert(nullptr != constructorID); _diceObject = jniEnv().NewObject(_diceClass,constructorID); assert(nullptr != _diceObject); }
void setContinuousRendering(bool _isContinuous) { s_isContinuousRendering = _isContinuous; JniThreadBinding jniEnv(jvm); jniEnv->CallVoidMethod(tangramInstance, requestRenderMethodID, _isContinuous ? 1 : 0); }
const std::string& Dice::toText() noexcept { if (nullptr == _dump) { const jmethodID methodID = jniEnv().GetMethodID(_diceClass,"toText", "()Ljava/lang/String;"); assert(nullptr != methodID); const jstring javaString = static_cast<jstring>(jniEnv().CallObjectMethod(_diceObject,methodID)); assert(nullptr != javaString); _dump = std::make_unique<std::string>(std::move(js2ss(javaString))); assert(nullptr != _dump); jniEnv().DeleteLocalRef(javaString); } return *_dump; }
std::string systemFontPath(const std::string& _family, const std::string& _weight, const std::string& _style) { JniThreadBinding jniEnv(jvm); jstring jfamily = jniEnv->NewStringUTF(_family.c_str()); jstring jweight = jniEnv->NewStringUTF(_weight.c_str()); jstring jstyle = jniEnv->NewStringUTF(_style.c_str()); jstring returnStr = (jstring) jniEnv->CallObjectMethod(tangramInstance, getFontFilePath, jfamily, jweight, jstyle); size_t length = jniEnv->GetStringUTFLength(returnStr); std::string fontPath = std::string(length, 0); jniEnv->GetStringUTFRegion(returnStr, 0, length, &fontPath[0]); return fontPath; }
void requestRender() { JniThreadBinding jniEnv(jvm); jniEnv->CallVoidMethod(tangramInstance, requestRenderMethodID); }
Dice::~Dice() { jniEnv().DeleteLocalRef(_diceObject); }