void RenderComponent::encodeWith(Json::Value *_val) { if (m_Sprite) { (*_val)["Type"] = Json::Value("Sprite"); (*_val)["Image"] = Json::Value(Gosu::narrow(m_Sprite->fileName())); (*_val)["Layer"] = Json::Value(m_Sprite->layer()); (*_val)["xScale"] = Json::Value(m_Sprite->factX()); (*_val)["yScale"] = Json::Value(m_Sprite->factY()); (*_val)["CenterX"] = Json::Value(m_Sprite->centerX()); (*_val)["CenterY"] = Json::Value(m_Sprite->centerY()); (*_val)["Position"][0u] = Json::Value(m_Sprite->posX()); (*_val)["Position"][1u] = Json::Value(m_Sprite->posY()); (*_val)["Rotation"] = Json::Value(m_Sprite->angle()); Gosu::Color color = m_Sprite->colorMod(); (*_val)["ColorMod"][0u] = Json::Value(color.alpha()); (*_val)["ColorMod"][1u] = Json::Value(color.red()); (*_val)["ColorMod"][2u] = Json::Value(color.green()); (*_val)["ColorMod"][3u] = Json::Value(color.blue()); }else{ (*_val)["Type"] = Json::Value("SpriteSheet"); (*_val)["Image"] = Json::Value(Gosu::narrow(m_SpriteSheet->fileName())); (*_val)["Layer"] = Json::Value(m_SpriteSheet->layer()); (*_val)["Width"] = Json::Value(m_SpriteSheet->width()); (*_val)["Height"] = Json::Value(m_SpriteSheet->height()); (*_val)["Duration"] = Json::Value(m_SpriteSheet->delay()); (*_val)["xScale"] = Json::Value(m_SpriteSheet->factX()); (*_val)["yScale"] = Json::Value(m_SpriteSheet->factY()); (*_val)["CenterX"] = Json::Value(m_SpriteSheet->centerX()); (*_val)["CenterY"] = Json::Value(m_SpriteSheet->centerY()); (*_val)["Position"][0u] = Json::Value(m_SpriteSheet->posX()); (*_val)["Position"][1u] = Json::Value(m_SpriteSheet->posY()); Gosu::Color color = m_SpriteSheet->colorMod(); (*_val)["ColorMod"][0u] = Json::Value(color.alpha()); (*_val)["ColorMod"][1u] = Json::Value(color.red()); (*_val)["ColorMod"][2u] = Json::Value(color.green()); (*_val)["ColorMod"][3u] = Json::Value(color.blue()); } }
bool Gosu::Graphics::begin(Gosu::Color clearWithColor) { // If recording is in process, cancel it. assert (pimpl->queues.size() == 1); pimpl->queues.resize(1); // Clear leftover clippings. pimpl->queues.front().clear(); #ifdef GOSU_IS_IPHONE pimpl->updateBaseTransform(); #endif glClearColor(clearWithColor.red() / 255.f, clearWithColor.green() / 255.f, clearWithColor.blue() / 255.f, clearWithColor.alpha() / 255.f); glClear(GL_COLOR_BUFFER_BIT); return true; }
bool Gosu::Graphics::begin(Gosu::Color clearWithColor) { // If there is a recording in process, stop it. // TODO: Raise exception? pimpl->queues.resize(1); // Clear leftover clippings. pimpl->queues.front().clear(); pimpl->currentTransforms.resize(1); #ifdef GOSU_IS_IPHONE pimpl->updateBaseTransform(); #endif pimpl->absoluteTransforms = pimpl->currentTransforms; glClearColor(clearWithColor.red()/255.0, clearWithColor.green()/255.0, clearWithColor.blue()/255.0, clearWithColor.alpha()/255.0); glClear(GL_COLOR_BUFFER_BIT); return true; }