void registerAffectorFactory(chstr typeName, Affector* (*factory)(chstr)) { if (gAffectorFactories.has_key(typeName)) { throw hl_exception("Affector Factory '" + typeName + "' already exists!"); } gAffectorFactories[typeName] = factory; }
grect hstr_to_grect(chstr string) { harray<hstr> data = string.split(aprilui::SeparatorParameter); if (data.size() != 4) { throw hl_exception("Cannot convert string '" + string + "' to gtypes::Rectangle."); } return grect(data[0].trim(), data[1].trim(), data[2].trim(), data[3].trim()); }
gvec2 hstr_to_gvec2(chstr string) { harray<hstr> data = string.split(aprilui::SeparatorParameter); if (data.size() != 2) { throw hl_exception("Cannot convert string '" + string + "' to gtypes::Vector2."); } return gvec2(data[0].trim(), data[1].trim()); }
void _createWindowSystem(WindowType windowType) { // creating the windowsystem WindowType window = windowType; if (window == WS_DEFAULT) { window = WS_INTERNAL_DEFAULT; } #ifdef _WIN32_WINDOW if (april::window == NULL && window == WS_WIN32) { april::window = new Win32_Window(); } #endif #ifdef _WINRT_WINDOW if (april::window == NULL && window == WS_WINRT) { april::window = new WinRT_Window(); } #endif #ifdef _SDL_WINDOW if (april::window == NULL && window == WS_SDL) { april::window = new SDL_Window(); } #endif #ifdef _COCOA_WINDOW if (april::window == NULL && window == WS_MAC) { april::window = new Mac_Window(); } #endif #ifdef _IOS if (april::window == NULL && window == WS_IOS) { april::window = new iOS_Window(); } #endif #ifdef _ANDROIDJNI_WINDOW if (april::window == NULL && window == WS_ANDROIDJNI) { april::window = new AndroidJNI_Window(); } #endif #ifdef _OPENKODE_WINDOW if (april::window == NULL && window == WS_OPENKODE) { april::window = new OpenKODE_Window(); } #endif if (april::window == NULL) { throw hl_exception("Could not create given windowsystem!"); } }
Mutex::Mutex() { #ifdef _WIN32 #ifndef _WINRT // WinXP does not have CreateMutexEx() this->handle = CreateMutex(0, 0, 0); #else this->handle = CreateMutexEx(NULL, NULL, 0, SYNCHRONIZE); #endif if (this->handle == 0) { throw hl_exception("Could not create mutex."); } #else this->handle = (pthread_mutex_t*)malloc(sizeof(pthread_mutex_t)); pthread_mutex_init((pthread_mutex_t*)this->handle, 0); #endif }
void _createRenderSystem(RenderSystemType renderSystemType) { // creating the rendersystem RenderSystemType renderSystem = renderSystemType; if (renderSystem == RS_DEFAULT) { renderSystem = RS_INTERNAL_DEFAULT; } #ifdef _DIRECTX9 if (april::rendersys == NULL && renderSystem == RS_DIRECTX9) { april::rendersys = new DirectX9_RenderSystem(); } #endif #ifdef _DIRECTX11 if (april::rendersys == NULL && renderSystem == RS_DIRECTX11) { april::rendersys = new DirectX11_RenderSystem(); } #endif #ifdef _OPENGL1 if (april::rendersys == NULL && renderSystem == RS_OPENGL1) { april::rendersys = new OpenGL1_RenderSystem(); } #endif #ifdef _OPENGLES1 if (april::rendersys == NULL && renderSystem == RS_OPENGLES1) { april::rendersys = new OpenGLES1_RenderSystem(); } #endif #ifdef _OPENGLES2 if (april::rendersys == NULL && renderSystem == RS_OPENGLES2) { april::rendersys = new OpenGLES2_RenderSystem(); } #endif if (april::rendersys == NULL) { throw hl_exception("Could not create given rendersystem!"); } }
bool LabelBase::setProperty(chstr name, chstr value) { if (name == "font") this->setFont(value); else if (name == "text_key") this->setTextKey(value); else if (name == "text") this->setText(value); else if (name == "horz_formatting") { if (value == "left") this->setHorzFormatting(atres::LEFT); else if (value == "right") this->setHorzFormatting(atres::RIGHT); else if (value == "center") this->setHorzFormatting(atres::CENTER); else if (value == "left_wrapped") this->setHorzFormatting(atres::LEFT_WRAPPED); else if (value == "right_wrapped") this->setHorzFormatting(atres::RIGHT_WRAPPED); else if (value == "center_wrapped") this->setHorzFormatting(atres::CENTER_WRAPPED); else if (value == "justified") this->setHorzFormatting(atres::JUSTIFIED); else { hlog::warn(aprilui::logTag, "'horz_formatting=' does not support value '" + value + "'."); return false; } } else if (name == "vert_formatting") { if (value == "top") this->setVertFormatting(atres::TOP); else if (value == "center") this->setVertFormatting(atres::CENTER); else if (value == "bottom") this->setVertFormatting(atres::BOTTOM); else { hlog::warn(aprilui::logTag, "'vert_formatting=' does not support value '" + value + "'."); return false; } } else if (name == "text_color") this->setTextColor(value); else if (name == "color") { throw hl_exception("LabelBase instance using 'color=' which is conflicted with TextImageButton's color and cannot be used! Maybe you meant 'text_color='?"); } else if (name == "effect") { this->setFontEffect(atres::NONE); this->setUseFontEffectColor(false); harray<hstr> values = value.split(":", -1, true); if (values.size() > 0) { if (values[0] == "none") this->setFontEffect(atres::NONE); else if (values[0] == "shadow") this->setFontEffect(atres::SHADOW); else if (values[0] == "border") this->setFontEffect(atres::BORDER); else { hlog::warn(aprilui::logTag, "'effect=' does not support value '" + values[0] + "'."); return false; } if (values.size() > 1) { if (values[1].is_hex() && (values[1].size() == 6 || values[1].size() == 8)) { this->setUseFontEffectColor(true); this->setFontEffectColor(values[1]); } else { hlog::warn(aprilui::logTag, "'effect=' is using invalid color modifier '" + values[1] + "'."); return false; } } } } else if (name == "text_offset_x") this->textOffset.x = (float)value; else if (name == "text_offset_y") this->textOffset.y = (float)value; else if (name == "background_color") this->setBackgroundColor(value); else return false; return true; }