void LandscapeEditorCustomColors::ShowAction() { landscapeSize = GetLandscape()->GetTexture(Landscape::TEXTURE_TILE_FULL)->GetWidth(); workingLandscape->CursorEnable(); //save fog status and disable it for more convenience isFogEnabled = workingLandscape->IsFogEnabled(); workingLandscape->SetFog(false); texSurf = SafeRetain( workingLandscape->GetTexture(Landscape::TEXTURE_TILE_FULL)); FilePath loadFileName = GetCurrentSaveFileName(); if(!loadFileName.IsEmpty()) LoadTextureAction(loadFileName); if(NULL == colorSprite) { Texture* tex = workingLandscape->GetTexture(Landscape::TEXTURE_TILE_FULL); colorSprite = Sprite::CreateAsRenderTarget(tex->width, tex->height, FORMAT_RGBA8888); RenderManager::Instance()->SetRenderTarget(colorSprite); const Vector<Color> & colors = EditorConfig::Instance()->GetColorPropertyValues("LandscapeCustomColors"); if(!colors.empty()) { RenderManager::Instance()->ClearWithColor(colors[0].r, colors[0].g, colors[0].b, colors[0].a); } RenderManager::Instance()->RestoreRenderTarget(); } PerformLandscapeDraw(); // TODO: mainwindow //QtMainWindowHandler::Instance()->SetCustomColorsWidgetsState(true); }
LandscapeEditorDrawSystem::eErrorType CustomColorsSystem::EnableLandscapeEditing() { if (enabled) { return LandscapeEditorDrawSystem::LANDSCAPE_EDITOR_SYSTEM_NO_ERRORS; } LandscapeEditorDrawSystem::eErrorType canBeEnabledError = IsCanBeEnabled(); if ( canBeEnabledError!= LandscapeEditorDrawSystem::LANDSCAPE_EDITOR_SYSTEM_NO_ERRORS) { return canBeEnabledError; } LandscapeEditorDrawSystem::eErrorType enableCustomDrawError = drawSystem->EnableCustomDraw(); if (enableCustomDrawError != LandscapeEditorDrawSystem::LANDSCAPE_EDITOR_SYSTEM_NO_ERRORS) { return enableCustomDrawError; } selectionSystem->SetLocked(true); modifSystem->SetLocked(true); landscapeSize = drawSystem->GetTextureSize(Landscape::TEXTURE_TILE_FULL); FilePath filePath = GetCurrentSaveFileName(); if (!filePath.IsEmpty()) { const bool isTextureLoaded = LoadTexture(filePath, false); drawSystem->GetCustomColorsProxy()->ResetLoadedState(isTextureLoaded); } else { drawSystem->GetCustomColorsProxy()->UpdateSpriteFromConfig(); } drawSystem->EnableCursor(landscapeSize); drawSystem->SetCursorTexture(cursorTexture); drawSystem->SetCursorSize(cursorSize); Texture* customColorsTexture = drawSystem->GetCustomColorsProxy()->GetSprite()->GetTexture(); drawSystem->GetLandscapeProxy()->SetCustomColorsTexture(customColorsTexture); drawSystem->GetLandscapeProxy()->SetCustomColorsTextureEnabled(true); if (!toolImageSprite) { CreateToolImage(512, "~res:/LandscapeEditor/Tools/customcolorsbrush/circle.tex"); } enabled = true; return LandscapeEditorDrawSystem::LANDSCAPE_EDITOR_SYSTEM_NO_ERRORS; }