请教, 在 cocos2dx 中, 无论在任何实际的分辨率下, 贴图的显示比例都是不变的, 这在底层是那部分的代码实现的? 例如:
设置
pDirector->setContentScaleFactor(2.0f);
pDirector->getOpenGLView()->setDesignResolutionSize(480, 320,
kResolutionNoBorder);
// CCSprite 那部分的比较复杂, 我就去看 CCLayerColor::draw() 这部分的代码
CCLayerColor::draw() { CC_NODE_DRAW_SETUP();
ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position | kCCVertexAttribFlag_Color ); glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0,
m_pSquareVertices); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_FLOAT, GL_FALSE, 0, m_pSquareColors);
ccGLBlendFunc( m_tBlendFunc.src, m_tBlendFunc.dst );
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
CC_INCREMENT_GL_DRAWS(1);}
其中
m_pSquareVertices 里面的最大值也不超过
(480, 320), 可是为什么在 iPad 上运行的时候, 实际的渲染区域变成
(1152, 768) , 请问在底层代码中, 是哪部分实现将(480, 320)的渲染区域扩大为(1152, 768)的.
谢谢米娜.