Skip to content

Commit 5ac9496

Browse files
committed
up
1 parent 8dc85e2 commit 5ac9496

25 files changed

Lines changed: 176 additions & 363 deletions

File tree

axmol/2d/NodeGrid.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ Camera* NodeGrid::getGridCamera()
8484
{
8585
if (!_gridCamera)
8686
{
87-
_gridCamera = Camera::createOrthographicView(_director->getCanvasSize(), -1024, 1024);
87+
_gridCamera = Camera::create(CameraMode::Ortho);
8888
AX_SAFE_RETAIN(_gridCamera);
8989
}
9090
else

axmol/2d/Transition.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1126,7 +1126,7 @@ void TransitionCrossFade::onEnter()
11261126
Vec2 size = _director->getCanvasSize();
11271127
LayerColor* layer = LayerColor::create(color);
11281128

1129-
auto camera = Camera::createOrthographicView(_director->getCanvasSize(), -1024, 1024);
1129+
auto camera = Camera::create(CameraMode::Ortho);
11301130

11311131
// create the first render texture for inScene
11321132
RenderTexture* inTexture =

axmol/2d/TransitionProgress.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ void TransitionProgress::onEnter()
8080
sprite->setAnchorPoint(Vec2(0.5f, 0.5f));
8181

8282
// render outScene to its texturebuffer
83-
auto camera = Camera::createOrthographicView(_director->getCanvasSize(), -1024, 1024);
83+
auto camera = Camera::create(CameraMode::Ortho);
8484

8585
{
8686
RefPtr<RenderTexturePass> pass(RenderTexturePass::obtain(texture), tlx::adopt_object);

axmol/base/Director.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ Camera* Director::getOverlayCamera()
410410
{
411411
if (!_overlayCamera)
412412
{
413-
_overlayCamera = Camera::createOrthographicView(_canvasSizeInPoints, -1024.0f, 1024.0f);
413+
_overlayCamera = Camera::create(CameraMode::Ortho);
414414
_overlayCamera->retain();
415415
_overlayCamera->setCameraFlag(CameraFlag::DEFAULT);
416416
_overlayCamera->setDepth(127);
@@ -423,7 +423,7 @@ Camera* Director::getOffscreenCamera()
423423
{
424424
if (!_offscreenCamera)
425425
{
426-
_offscreenCamera = Camera::createOrthographicView(_canvasSizeInPoints, -1024.0f, 1024.0f);
426+
_offscreenCamera = Camera::create(CameraMode::Ortho);
427427
_offscreenCamera->retain();
428428
_offscreenCamera->setCameraFlag(CameraFlag::DEFAULT);
429429
_offscreenCamera->setDepth(0);

axmol/base/Utils.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ void captureNode(Node* startNode, std::function<void(RefPtr<Image>)> imageCallba
159159

160160
RefPtr<RenderTexturePass> rtxPass(RenderTexturePass::obtain(rtx), tlx::adopt_object);
161161

162-
Camera* camera = Camera::createOrthographicView(size, -1024.f, 1024.f);
162+
auto camera = Camera::create();
163+
camera->configureOrthographicView(size, -1024.f, 1024.f);
163164

164165
rtxPass->begin(camera);
165166
rtxPass->clearAll();

axmol/scene/Camera.cpp

Lines changed: 38 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -42,62 +42,44 @@ Viewport Camera::_defaultViewport;
4242

4343
// start static methods
4444

45+
Camera* Camera::create()
46+
{
47+
auto ret = new Camera();
48+
ret->autorelease();
49+
return ret;
50+
}
51+
4552
Camera* Camera::create(CameraMode mode)
4653
{
47-
auto& size = Director::getInstance()->getCanvasSize();
54+
auto& canvasSize = Director::getInstance()->getCanvasSize();
4855
switch (mode)
4956
{
5057
case CameraMode::Ortho:
5158
{
52-
auto cam = Camera::createOrthographicView(size, -1024.0f, 1024.0f);
59+
auto cam = Camera::create();
60+
cam->configureOrthographicView(canvasSize, -1024.0f, 1024.0f);
5361
return cam;
5462
}
5563
case CameraMode::Perspective:
5664
{
57-
auto cam = Camera::createPerspective(60.0f, size.width / size.height, 0.3f, 1000.0f);
65+
auto cam = Camera::create();
66+
cam->configurePerspective(60.0f, canvasSize.width / canvasSize.height, 0.3f, 1000.0f);
5867
cam->setPosition3D(Vec3(0.0f, 1.5f, 5.0f));
5968
cam->lookAt(Vec3(0, 0, 0));
6069
return cam;
6170
}
6271
case CameraMode::Classic:
6372
{
64-
Camera* camera = new Camera();
65-
camera->initClassic();
66-
camera->autorelease();
67-
return camera;
73+
auto cam = Camera::create();
74+
cam->configureClassicView(canvasSize);
75+
cam->setDepth(0);
76+
return cam;
6877
}
6978
}
7079
AXASSERT(false, "Invalid CameraMode");
7180
return nullptr;
7281
}
7382

74-
Camera* Camera::createPerspective(float fieldOfView, float aspectRatio, float nearPlane, float farPlane)
75-
{
76-
auto ret = new Camera();
77-
ret->_cameraMode = CameraMode::Perspective;
78-
ret->configurePerspective(fieldOfView, aspectRatio, nearPlane, farPlane);
79-
ret->autorelease();
80-
return ret;
81-
}
82-
83-
Camera* Camera::createOrthographic(float zoomX, float zoomY, float nearPlane, float farPlane)
84-
{
85-
auto ret = new Camera();
86-
ret->_cameraMode = CameraMode::Ortho;
87-
ret->configureOrthographic(zoomX, zoomY, nearPlane, farPlane);
88-
ret->autorelease();
89-
return ret;
90-
}
91-
92-
Camera* Camera::createOrthographicView(const Vec2& size, float nearPlane, float farPlane)
93-
{
94-
auto ret = new Camera();
95-
ret->_cameraMode = CameraMode::Ortho;
96-
ret->configureOrthographicView(size, nearPlane, farPlane);
97-
ret->autorelease();
98-
return ret;
99-
}
100-
10183
Camera* Camera::getDefaultCamera()
10284
{
10385
// camera nullptr scene init fix #690
@@ -128,15 +110,7 @@ void Camera::setDefaultViewport(const Viewport& vp)
128110
// end static methods
129111

130112
Camera::Camera()
131-
: _eyeZdistance(1)
132-
, _zoomFactor(1)
133-
, _nearPlane(-1024)
134-
, _farPlane(1024)
135-
, _zoomFactorNearPlane(10)
136-
, _zoomFactorFarPlane(1024)
137-
{
138-
// minggo comment
139-
// _frustum.setClipZ(true);
113+
{
140114
_renderView = _director->getRenderView();
141115
}
142116

@@ -244,19 +218,13 @@ void Camera::updateProjection()
244218

245219
void Camera::configureClassicView(const Vec2& canvasSize)
246220
{
247-
const float zeye = _director->getZEye();
221+
const float zeye = _director->getZEye();
222+
const float farPlane = zeye + canvasSize.height * 0.5f;
248223

249-
_aspectRatio = canvasSize.width / canvasSize.height;
250-
_farPlane = zeye + canvasSize.height * 0.5f;
251-
_zoomFactorFarPlane = _farPlane;
224+
configureClassic(canvasSize.width / canvasSize.height, 0.5f, farPlane);
252225

253-
updateProjection();
254-
255-
const Vec3 eye(canvasSize.width * 0.5f, canvasSize.height * 0.5f, zeye);
256-
const Vec3 center(canvasSize.width * 0.5f, canvasSize.height * 0.5f, 0.0f);
257-
258-
setPosition3D(eye);
259-
lookAt(center, Vec3::yAxis);
226+
setPosition3D(Vec3(canvasSize.width * 0.5f, canvasSize.height * 0.5f, zeye));
227+
lookAt(Vec3(canvasSize.width * 0.5f, canvasSize.height * 0.5f, 0.0f), Vec3::yAxis);
260228
_eyeZdistance = zeye;
261229

262230
if (_zoomFactor != 1.0f)
@@ -285,42 +253,40 @@ void Camera::onCanvasSizeChanged(const Vec2& canvasSize)
285253
}
286254
}
287255

288-
void Camera::initClassic()
289-
{
290-
_cameraMode = CameraMode::Classic;
291-
_fieldOfView = 60.0F;
292-
_nearPlane = 0.5F;
293-
configureClassicView(_director->getCanvasSize());
294-
setDepth(0);
295-
}
296-
297-
void Camera::updateTransform()
256+
void Camera::configureClassic(float aspectRatio, float nearPlane, float farPlane)
298257
{
258+
_cameraMode = CameraMode::Classic;
259+
_fieldOfView = 60.0F;
260+
_aspectRatio = aspectRatio;
261+
_nearPlane = nearPlane;
262+
_farPlane = farPlane;
263+
_zoomFactorNearPlane = _nearPlane;
264+
_zoomFactorFarPlane = _farPlane;
299265
updateProjection();
300266
}
301267

302268
bool Camera::configurePerspective(float fieldOfView, float aspectRatio, float nearPlane, float farPlane)
303269
{
270+
_cameraMode = CameraMode::Perspective;
304271
_fieldOfView = fieldOfView;
305272
_aspectRatio = aspectRatio;
306273
_nearPlane = nearPlane;
307274
_farPlane = farPlane;
308275

309-
if (_zoomFactorFarPlane == 1024)
310-
_zoomFactorFarPlane = farPlane;
311-
if (_zoomFactorNearPlane == 10)
312-
_zoomFactorNearPlane = nearPlane;
276+
_zoomFactorNearPlane = nearPlane;
277+
_zoomFactorFarPlane = farPlane;
313278

314279
updateProjection();
315280
return true;
316281
}
317282

318283
bool Camera::configureOrthographic(float zoomX, float zoomY, float nearPlane, float farPlane)
319284
{
320-
_zoom[0] = zoomX;
321-
_zoom[1] = zoomY;
322-
_nearPlane = nearPlane;
323-
_farPlane = farPlane;
285+
_cameraMode = CameraMode::Ortho;
286+
_zoom[0] = zoomX;
287+
_zoom[1] = zoomY;
288+
_nearPlane = nearPlane;
289+
_farPlane = farPlane;
324290

325291
updateProjection();
326292
return true;

0 commit comments

Comments
 (0)