| 838 | } |
| 839 | |
| 840 | void Editor::flashCurrentLayer() |
| 841 | { |
| 842 | if (!Preferences::instance().experimental.flashLayer()) |
| 843 | return; |
| 844 | |
| 845 | Site site = getSite(); |
| 846 | |
| 847 | int x, y; |
| 848 | const Image* src_image = site.image(&x, &y); |
| 849 | if (src_image) { |
| 850 | m_renderEngine.removePreviewImage(); |
| 851 | |
| 852 | ExtraCelRef extraCel(new ExtraCel); |
| 853 | extraCel->create(m_sprite, m_sprite->bounds(), m_frame, 255); |
| 854 | extraCel->setType(render::ExtraType::COMPOSITE); |
| 855 | extraCel->setBlendMode(BlendMode::NEG_BW); |
| 856 | |
| 857 | Image* flash_image = extraCel->image(); |
| 858 | clear_image(flash_image, flash_image->maskColor()); |
| 859 | copy_image(flash_image, src_image, x, y); |
| 860 | |
| 861 | { |
| 862 | ExtraCelRef oldExtraCel = m_document->extraCel(); |
| 863 | m_document->setExtraCel(extraCel); |
| 864 | drawSpriteClipped(gfx::Region( |
| 865 | gfx::Rect(0, 0, m_sprite->width(), m_sprite->height()))); |
| 866 | manager()->flipDisplay(); |
| 867 | m_document->setExtraCel(oldExtraCel); |
| 868 | } |
| 869 | |
| 870 | invalidate(); |
| 871 | } |
| 872 | } |
| 873 | |
| 874 | gfx::Point Editor::autoScroll(MouseMessage* msg, AutoScroll dir) |
| 875 | { |
no test coverage detected