virtualx-engine/scene/resources/sky_box.h
Juan Linietsky 118eed485e ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant.
All usages of "type" to refer to classes were renamed to "class"
ClassDB has been exposed to GDScript.
OBJ_TYPE() macro is now GDCLASS()
2017-01-02 23:03:46 -03:00

71 lines
1.2 KiB
C++

#ifndef SKYBOX_H
#define SKYBOX_H
#include "scene/resources/texture.h"
class SkyBox : public Resource {
GDCLASS(SkyBox,Resource);
public:
enum RadianceSize {
RADIANCE_SIZE_256,
RADIANCE_SIZE_512,
RADIANCE_SIZE_1024,
RADIANCE_SIZE_2048,
RADIANCE_SIZE_MAX
};
private:
RadianceSize radiance_size;
protected:
static void _bind_methods();
virtual void _radiance_changed()=0;
public:
void set_radiance_size(RadianceSize p_size);
RadianceSize get_radiance_size() const;
SkyBox();
};
VARIANT_ENUM_CAST(SkyBox::RadianceSize)
class ImageSkyBox : public SkyBox {
GDCLASS(ImageSkyBox,SkyBox);
public:
enum ImagePath {
IMAGE_PATH_NEGATIVE_X,
IMAGE_PATH_POSITIVE_X,
IMAGE_PATH_NEGATIVE_Y,
IMAGE_PATH_POSITIVE_Y,
IMAGE_PATH_NEGATIVE_Z,
IMAGE_PATH_POSITIVE_Z,
IMAGE_PATH_MAX
};
private:
RID cube_map;
RID sky_box;
bool cube_map_valid;
String image_path[IMAGE_PATH_MAX];
protected:
static void _bind_methods();
virtual void _radiance_changed();
public:
void set_image_path(ImagePath p_image, const String &p_path);
String get_image_path(ImagePath p_image) const;
virtual RID get_rid() const;
ImageSkyBox();
~ImageSkyBox();
};
VARIANT_ENUM_CAST(ImageSkyBox::ImagePath)
#endif // SKYBOX_H