PuzzleSDK
ShaderTest.h
浏览该文件的文档.
1/****************************************************************************
2 Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
3
4 http://www.cocos2d-x.org
5
6 Permission is hereby granted, free of charge, to any person obtaining a copy
7 of this software and associated documentation files (the "Software"), to deal
8 in the Software without restriction, including without limitation the rights
9 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 copies of the Software, and to permit persons to whom the Software is
11 furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice shall be included in
14 all copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 THE SOFTWARE.
23 ****************************************************************************/
24
25#pragma once
26
27#include "ui/CocosGUI.h"
28
29#include "extensions/cocos-ext.h"
30#include "../BaseTest.h"
31
32DEFINE_TEST_SUITE(ShaderTests);
33
35{
36public:
37};
38
40{
41public:
44
45 virtual std::string title() const override;
46 virtual std::string subtitle() const override;
47 virtual bool init() override;
48};
49
51{
52public:
55
56 virtual std::string title() const override;
57 virtual std::string subtitle() const override;
58 virtual bool init() override;
59};
60
62{
63public:
66
67 virtual std::string title() const override;
68 virtual std::string subtitle() const override;
69 virtual bool init() override;
70};
71
73{
74public:
77
78 virtual std::string title() const override;
79 virtual std::string subtitle() const override;
80 virtual bool init() override;
81};
82
84{
85public:
88
89 virtual std::string title() const override;
90 virtual std::string subtitle() const override;
91 virtual bool init() override;
92};
93
95{
96public:
99
100 virtual std::string title() const override;
101 virtual std::string subtitle() const override;
102 virtual bool init() override;
103};
104
105class SpriteBlur;
107{
108public:
110 ShaderBlur();
111 virtual std::string title() const override;
112 virtual std::string subtitle() const override;
113 virtual bool init() override;
114 void createSliderCtls();
115 void onRadiusChanged(cocos2d::Ref* sender, cocos2d::extension::Control::EventType controlEvent);
116 void onSampleNumChanged(cocos2d::Ref* sender, cocos2d::extension::Control::EventType controlEvent);
117
118protected:
120 cocos2d::extension::ControlSlider* _sliderRadiusCtl;
121 cocos2d::extension::ControlSlider* _sliderNumCtrl;
122};
123
125{
126public:
129 virtual std::string title() const override;
130 virtual std::string subtitle() const override;
131 virtual bool init() override;
132 virtual void update(float dt) override;
133protected:
134 cocos2d::Label* _label;
135 float _accum;
136};
137
138class ShaderNode : public cocos2d::Node
139{
140public:
142 static ShaderNode* shaderNodeWithVertex(const std::string &vert, const std::string &frag);
143
144 virtual void update(float dt) override;
145 virtual void setPosition(const cocos2d::Vec2 &newPosition) override;
146 virtual void draw(cocos2d::Renderer* renderer, const cocos2d::Mat4& transform, uint32_t flags) override;
147
148protected:
149 ShaderNode();
150 ~ShaderNode();
151
152 bool initWithVertex(const std::string &vert, const std::string &frag);
153 void loadShaderVertex(const std::string &vert, const std::string &frag);
154
155 virtual void setProgramState(cocos2d::backend::ProgramState *programState) override
156 {
157 if (programState != _programState)
158 {
159 CC_SAFE_RELEASE_NULL(_programState);
160 _programState = programState;
161 CC_SAFE_RETAIN(_programState);
162 }
163 _customCommand.getPipelineDescriptor().programState = programState;
165 }
166
167 void updateUniforms();
168
169 cocos2d::Vec2 _center;
170 cocos2d::Vec2 _resolution;
171 float _time;
172 std::string _vertFileName;
173 std::string _fragFileName;
174 cocos2d::CustomCommand _customCommand;
175
176 cocos2d::backend::UniformLocation _locResolution;
177 cocos2d::backend::UniformLocation _locCenter;
178 cocos2d::backend::UniformLocation _locMVP;
179 cocos2d::backend::UniformLocation _locTime;
180 cocos2d::backend::UniformLocation _locSinTime;
181 cocos2d::backend::UniformLocation _locCosTime;
182 cocos2d::backend::UniformLocation _locScreenSize;
183};
184
186{
187public:
190
191 virtual std::string title() const override;
192 virtual std::string subtitle() const override;
193 virtual bool init() override;
194};
195
197{
198public:
200 ShaderGlow();
201
202 virtual std::string title() const override;
203 virtual std::string subtitle() const override;
204 virtual bool init() override;
205};
206
208{
209 static const int rightSpriteTag = 2014;
210public:
213 cocos2d::ui::Slider* createSliderCtl();
214 void changeTexture(cocos2d::Ref*);
216 cocos2d::Sprite* _sprite;
217
218 virtual std::string title() const override;
219 virtual std::string subtitle() const override;
220 virtual bool init() override;
221};
222
DEFINE_TEST_SUITE(ShaderTests)
virtual std::string title() const override
Definition: ShaderTest.cpp:508
cocos2d::extension::ControlSlider * _sliderNumCtrl
Definition: ShaderTest.h:121
void onRadiusChanged(cocos2d::Ref *sender, cocos2d::extension::Control::EventType controlEvent)
Definition: ShaderTest.cpp:582
CREATE_FUNC(ShaderBlur)
void onSampleNumChanged(cocos2d::Ref *sender, cocos2d::extension::Control::EventType controlEvent)
Definition: ShaderTest.cpp:588
virtual bool init() override
Definition: ShaderTest.cpp:558
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:513
void createSliderCtls()
Definition: ShaderTest.cpp:518
cocos2d::extension::ControlSlider * _sliderRadiusCtl
Definition: ShaderTest.h:120
SpriteBlur * _blurSprite
Definition: ShaderTest.h:119
ShaderFlower()
ShaderFlower
Definition: ShaderTest.cpp:344
CREATE_FUNC(ShaderFlower)
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:370
virtual bool init() override
Definition: ShaderTest.cpp:348
virtual std::string title() const override
Definition: ShaderTest.cpp:365
CREATE_FUNC(ShaderGlow)
virtual bool init() override
Definition: ShaderTest.cpp:716
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:711
virtual std::string title() const override
Definition: ShaderTest.cpp:706
virtual std::string title() const override
Definition: ShaderTest.cpp:333
ShaderHeart()
ShaderHeart
Definition: ShaderTest.cpp:312
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:338
CREATE_FUNC(ShaderHeart)
virtual bool init() override
Definition: ShaderTest.cpp:316
virtual bool init() override
Definition: ShaderTest.cpp:284
ShaderJulia()
ShaderJulia
Definition: ShaderTest.cpp:280
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:305
CREATE_FUNC(ShaderJulia)
virtual std::string title() const override
Definition: ShaderTest.cpp:300
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:677
virtual std::string title() const override
Definition: ShaderTest.cpp:672
CREATE_FUNC(ShaderLensFlare)
virtual bool init() override
Definition: ShaderTest.cpp:682
virtual std::string title() const override
Definition: ShaderTest.cpp:269
ShaderMandelbrot()
ShaderMandelbrot
Definition: ShaderTest.cpp:249
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:274
virtual bool init() override
Definition: ShaderTest.cpp:253
CREATE_FUNC(ShaderMandelbrot)
CREATE_FUNC(ShaderMonjori)
ShaderMonjori()
ShaderMonjori
Definition: ShaderTest.cpp:216
virtual std::string title() const override
Definition: ShaderTest.cpp:237
virtual bool init() override
Definition: ShaderTest.cpp:220
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:242
static const int rightSpriteTag
Definition: ShaderTest.h:209
void changeTexture(cocos2d::Ref *)
Definition: ShaderTest.cpp:826
cocos2d::ui::Slider * createSliderCtl()
Definition: ShaderTest.cpp:750
virtual bool init() override
Definition: ShaderTest.cpp:776
virtual std::string title() const override
Definition: ShaderTest.cpp:740
CREATE_FUNC(ShaderMultiTexture)
cocos2d::Sprite * _sprite
Definition: ShaderTest.h:216
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:745
cocos2d::Vec2 _resolution
Definition: ShaderTest.h:170
std::string _fragFileName
Definition: ShaderTest.h:173
void loadShaderVertex(const std::string &vert, const std::string &frag)
Definition: ShaderTest.cpp:131
void updateUniforms()
Definition: ShaderTest.cpp:195
virtual void update(float dt) override
Definition: ShaderTest.cpp:154
cocos2d::backend::UniformLocation _locSinTime
Definition: ShaderTest.h:180
float _time
Definition: ShaderTest.h:171
cocos2d::Vec2 _center
Definition: ShaderTest.h:169
cocos2d::backend::UniformLocation _locScreenSize
Definition: ShaderTest.h:182
virtual void draw(cocos2d::Renderer *renderer, const cocos2d::Mat4 &transform, uint32_t flags) override
Definition: ShaderTest.cpp:169
cocos2d::backend::UniformLocation _locCosTime
Definition: ShaderTest.h:181
virtual void setPosition(const cocos2d::Vec2 &newPosition) override
Definition: ShaderTest.cpp:159
cocos2d::backend::UniformLocation _locTime
Definition: ShaderTest.h:179
bool initWithVertex(const std::string &vert, const std::string &frag)
Definition: ShaderTest.cpp:94
cocos2d::backend::UniformLocation _locMVP
Definition: ShaderTest.h:178
virtual void setProgramState(cocos2d::backend::ProgramState *programState) override
Definition: ShaderTest.h:155
cocos2d::backend::UniformLocation _locResolution
Definition: ShaderTest.h:176
std::string _vertFileName
Definition: ShaderTest.h:172
cocos2d::CustomCommand _customCommand
Definition: ShaderTest.h:174
cocos2d::backend::UniformLocation _locCenter
Definition: ShaderTest.h:177
static ShaderNode * shaderNodeWithVertex(const std::string &vert, const std::string &frag)
Definition: ShaderTest.cpp:85
CREATE_FUNC(ShaderNode)
CREATE_FUNC(ShaderPlasma)
virtual std::string title() const override
Definition: ShaderTest.cpp:397
virtual bool init() override
Definition: ShaderTest.cpp:380
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:402
ShaderPlasma()
ShaderPlasma
Definition: ShaderTest.cpp:376
cocos2d::Label * _label
Definition: ShaderTest.h:134
virtual void update(float dt) override
Definition: ShaderTest.cpp:637
virtual std::string title() const override
Definition: ShaderTest.cpp:657
CREATE_FUNC(ShaderRetroEffect)
virtual bool init() override
Definition: ShaderTest.cpp:602
virtual std::string subtitle() const override
Definition: ShaderTest.cpp:662