1 /*
2     delaboratory - color correction utility
3     Copyright (C) 2011 Jacek Poplawski
4 
5     This program is free software: you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation, either version 3 of the License, or
8     (at your option) any later version.
9 
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14 
15     You should have received a copy of the GNU General Public License
16     along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18 
19 #ifndef _DE_RENDERER_H
20 #define _DE_RENDERER_H
21 
22 class deChannelManager;
23 class deViewManager;
24 class deLayerProcessor;
25 class deLayerStack;
26 #include "size.h"
27 #include "rendered_image.h"
28 #include "mutex.h"
29 
30 class deRenderer
31 {
32     private:
33         deRenderedImage renderedImage;
34         deSize size;
35         deChannelManager& channelManager;
36         deMutex mutex;
37 
38         unsigned char* getCurrentImageData();
39 
40     public:
41         deRenderer(deChannelManager& _channelManager);
42         virtual ~deRenderer();
43 
44         bool render(deCanvas& canvas);
45         bool prepareImage(const deViewManager& viewManager, deLayerProcessor& layerProcessor, deLayerStack& layerStack);
46 };
47 
48 #endif
49