2011-08-03 20:05:33 +00:00
|
|
|
/*
|
|
|
|
Copyright (C) 2007, 2010 - Bit-Blot
|
|
|
|
|
|
|
|
This file is part of Aquaria.
|
|
|
|
|
|
|
|
Aquaria is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
2012-09-23 02:51:13 +00:00
|
|
|
#ifndef DARKLAYER_H
|
|
|
|
#define DARKLAYER_H
|
2011-08-03 20:05:33 +00:00
|
|
|
|
|
|
|
#include "Base.h"
|
|
|
|
#include "FrameBuffer.h"
|
|
|
|
|
2024-01-11 22:05:47 +00:00
|
|
|
struct RenderState;
|
|
|
|
|
2011-08-03 20:05:33 +00:00
|
|
|
class DarkLayer
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
DarkLayer();
|
|
|
|
void init(int quality, bool useFrameBuffer=true);
|
|
|
|
void toggle(bool on);
|
2024-04-25 01:33:02 +00:00
|
|
|
void setSrcLayer(int layer);
|
|
|
|
void preRender(); // call before rendering anything else. this is for render-to-texture mode
|
|
|
|
void beginCapture(); // call this + endCapture() when rendering the layer where dark layer objects are located
|
|
|
|
void endCapture();
|
|
|
|
|
2024-01-11 22:05:47 +00:00
|
|
|
void render(const RenderState& rs) const;
|
2024-04-25 01:33:02 +00:00
|
|
|
bool isUsed() const;
|
|
|
|
bool shouldRenderLayer(int lr) const;
|
2016-05-05 17:40:28 +00:00
|
|
|
|
2011-08-03 20:05:33 +00:00
|
|
|
void unloadDevice();
|
|
|
|
void reloadDevice();
|
|
|
|
|
2024-04-25 01:33:02 +00:00
|
|
|
int beginLayer;
|
|
|
|
int lastLayer; // inclusive
|
|
|
|
|
|
|
|
protected:
|
2011-08-03 20:05:33 +00:00
|
|
|
bool useFrameBuffer;
|
|
|
|
FrameBuffer frameBuffer;
|
|
|
|
int quality;
|
2024-04-25 01:33:02 +00:00
|
|
|
int layer;
|
2011-08-03 20:05:33 +00:00
|
|
|
bool active;
|
2016-07-09 02:18:40 +00:00
|
|
|
unsigned texture;
|
2011-08-03 20:05:33 +00:00
|
|
|
};
|
|
|
|
|
2012-09-23 02:51:13 +00:00
|
|
|
#endif
|