mirror of https://github.com/axmolengine/axmol.git
modify skybox
This commit is contained in:
parent
6cd1697240
commit
9540fd590f
|
@ -22,6 +22,14 @@
|
|||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include "base/ccMacros.h"
|
||||
#include "base/CCConfiguration.h"
|
||||
#include "base/CCDirector.h"
|
||||
#include "renderer/ccGLStateCache.h"
|
||||
#include "renderer/CCGLProgram.h"
|
||||
#include "renderer/CCGLProgramCache.h"
|
||||
#include "renderer/CCGLProgramState.h"
|
||||
#include "renderer/CCRenderer.h"
|
||||
#include "3d/CCSkybox.h"
|
||||
#include "3d/CCTextureCube.h"
|
||||
|
||||
|
@ -53,6 +61,17 @@ Skybox::~Skybox()
|
|||
_texture->release();
|
||||
}
|
||||
|
||||
Skybox* Skybox::create(const std::string& positive_x, const std::string& negative_x,
|
||||
const std::string& positive_y, const std::string& negative_y,
|
||||
const std::string& positive_z, const std::string& negative_z)
|
||||
{
|
||||
auto ret = new (std::nothrow) Skybox();
|
||||
ret->init(positive_x, negative_x, positive_y, negative_y, positive_z, negative_z);
|
||||
|
||||
ret->autorelease();
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool Skybox::init()
|
||||
{
|
||||
// create and set our custom shader
|
||||
|
@ -68,6 +87,17 @@ bool Skybox::init()
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Skybox::init(const std::string& positive_x, const std::string& negative_x,
|
||||
const std::string& positive_y, const std::string& negative_y,
|
||||
const std::string& positive_z, const std::string& negative_z)
|
||||
{
|
||||
init();
|
||||
auto texture = TextureCube::create(positive_x, negative_x, positive_y, negative_y, positive_z, negative_z);
|
||||
setTexture(texture);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Skybox::initBuffers()
|
||||
{
|
||||
if (Configuration::getInstance()->supportsShareableVAO())
|
||||
|
|
|
@ -25,7 +25,10 @@
|
|||
#ifndef __SKYBOX_H__
|
||||
#define __SKYBOX_H__
|
||||
|
||||
#include "cocos2d.h"
|
||||
#include "base/ccTypes.h"
|
||||
#include "platform/CCPlatformMacros.h"
|
||||
#include "renderer/CCCustomCommand.h"
|
||||
#include "2d/CCNode.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
|
@ -38,6 +41,19 @@ class CC_DLL Skybox : public Node
|
|||
{
|
||||
public:
|
||||
CREATE_FUNC(Skybox);
|
||||
|
||||
/** create skybox from 6 textures.
|
||||
@param positive_x texture for the right side of the texture cube face.
|
||||
@param negative_x texture for the up side of the texture cube face.
|
||||
@param positive_y texture for the top side of the texture cube face
|
||||
@param negative_y texture for the bottom side of the texture cube face
|
||||
@param positive_z texture for the forward side of the texture cube face.
|
||||
@param negative_z texture for the rear side of the texture cube face.
|
||||
@return A new skybox inited with given parameters.
|
||||
*/
|
||||
static Skybox* create(const std::string& positive_x, const std::string& negative_x,
|
||||
const std::string& positive_y, const std::string& negative_y,
|
||||
const std::string& positive_z, const std::string& negative_z);
|
||||
|
||||
/**texture getter and setter*/
|
||||
void setTexture(TextureCube*);
|
||||
|
@ -63,6 +79,13 @@ CC_CONSTRUCTOR_ACCESS:
|
|||
* init Skybox.
|
||||
*/
|
||||
virtual bool init();
|
||||
|
||||
/**
|
||||
* initialize with texture path
|
||||
*/
|
||||
bool init(const std::string& positive_x, const std::string& negative_x,
|
||||
const std::string& positive_y, const std::string& negative_y,
|
||||
const std::string& positive_z, const std::string& negative_z);
|
||||
|
||||
protected:
|
||||
|
||||
|
|
Loading…
Reference in New Issue