void CustomColorsSystem::ProcessUIEvent(DAVA::UIEvent *event) { if (!IsLandscapeEditingEnabled()) { return; } UpdateCursorPosition(); if (event->tid == UIEvent::BUTTON_1) { Vector3 point; switch(event->phase) { case UIEvent::PHASE_BEGAN: if (isIntersectsLandscape) { UpdateToolImage(); StoreOriginalState(); editingIsEnabled = true; } break; case UIEvent::PHASE_DRAG: break; case UIEvent::PHASE_ENDED: FinishEditing(); break; } } }
void LandscapeEditorCustomColors::InputAction(int32 phase, bool intersects) { switch(phase) { case UIEvent::PHASE_BEGAN: { editingIsEnabled = true; StoreOriginalState(); break; } case UIEvent::PHASE_DRAG: { if(editingIsEnabled && !intersects) { editingIsEnabled = false; CreateUndoPoint(); } else if(!editingIsEnabled && intersects) { editingIsEnabled = true; StoreOriginalState(); } break; } case UIEvent::PHASE_ENDED: { editingIsEnabled = false; CreateUndoPoint(); break; } default: break; } UpdateCircleTexture(false); wasTileMaskToolUpdate = true; }
bool CustomColorsSystem::LoadTexture( const DAVA::FilePath &filePath, bool createUndo /* = true */ ) { if(filePath.IsEmpty()) return false; Vector<Image*> images; ImageSystem::Instance()->Load(filePath, images); if(images.empty()) return false; Image* image = images.front(); if(image) { Texture* texture = Texture::CreateFromData(image->GetPixelFormat(), image->GetData(), image->GetWidth(), image->GetHeight(), false); Sprite* sprite = Sprite::CreateFromTexture(texture, 0, 0, texture->GetWidth(), texture->GetHeight()); if (createUndo) { StoreOriginalState(); } RenderManager::Instance()->SetRenderTarget(drawSystem->GetCustomColorsProxy()->GetSprite()); Sprite::DrawState drawState; sprite->Draw(&drawState); RenderManager::Instance()->RestoreRenderTarget(); AddRectToAccumulator(Rect(Vector2(0.f, 0.f), Vector2(texture->GetWidth(), texture->GetHeight()))); SafeRelease(sprite); SafeRelease(texture); for_each(images.begin(), images.end(), SafeRelease<Image>); if (createUndo) { ((SceneEditor2*)GetScene())->BeginBatch("Load custom colors texture"); StoreSaveFileName(filePath); CreateUndoPoint(); ((SceneEditor2*)GetScene())->EndBatch(); } } return true; }
void LandscapeEditorCustomColors::LoadTextureAction(const FilePath &pathToFile) { if(pathToFile.IsEmpty()) return; Vector<Image*> images = ImageLoader::CreateFromFile(pathToFile); if(images.empty()) return; Image* image = images.front(); if(image) { Texture* texture = Texture::CreateFromData(image->GetPixelFormat(), image->GetData(), image->GetWidth(), image->GetHeight(), false); SafeRelease(colorSprite); colorSprite = Sprite::CreateAsRenderTarget(texSurf->GetWidth(), texSurf->GetHeight(), FORMAT_RGBA8888); Sprite* sprite = Sprite::CreateFromTexture(texture, 0, 0, texture->GetWidth(), texture->GetHeight()); StoreOriginalState(); RenderManager::Instance()->SetRenderTarget(colorSprite); sprite->Draw(); RenderManager::Instance()->RestoreRenderTarget(); PerformLandscapeDraw(); SafeRelease(sprite); SafeRelease(texture); for_each(images.begin(), images.end(), SafeRelease<Image>); StoreSaveFileName(pathToFile); CreateUndoPoint(); } }