mirror of https://github.com/axmolengine/axmol.git
issue #1555:build ok on android
This commit is contained in:
parent
cb2bc37513
commit
a4a53df159
|
@ -8,7 +8,6 @@ LOCAL_MODULE_FILENAME := libcocos2d
|
|||
|
||||
LOCAL_SRC_FILES := \
|
||||
CCConfiguration.cpp \
|
||||
CCDrawingPrimitives.cpp \
|
||||
CCScheduler.cpp \
|
||||
CCCamera.cpp \
|
||||
actions/CCAction.cpp \
|
||||
|
@ -38,6 +37,8 @@ cocoa/CCZone.cpp \
|
|||
cocoa/CCArray.cpp \
|
||||
cocos2d.cpp \
|
||||
CCDirector.cpp \
|
||||
draw_nodes/CCDrawingPrimitives.cpp \
|
||||
draw_nodes/CCDrawNode.cpp \
|
||||
effects/CCGrabber.cpp \
|
||||
effects/CCGrid.cpp \
|
||||
kazmath/src/aabb.c \
|
||||
|
@ -65,6 +66,7 @@ layers_scenes_transitions_nodes/CCTransition.cpp \
|
|||
layers_scenes_transitions_nodes/CCTransitionProgress.cpp \
|
||||
menu_nodes/CCMenu.cpp \
|
||||
menu_nodes/CCMenuItem.cpp \
|
||||
misc_nodes/CCClippingNode.cpp \
|
||||
misc_nodes/CCMotionStreak.cpp \
|
||||
misc_nodes/CCProgressTimer.cpp \
|
||||
misc_nodes/CCRenderTexture.cpp \
|
||||
|
@ -72,6 +74,8 @@ particle_nodes/CCParticleExamples.cpp \
|
|||
particle_nodes/CCParticleSystem.cpp \
|
||||
particle_nodes/CCParticleBatchNode.cpp \
|
||||
particle_nodes/CCParticleSystemQuad.cpp \
|
||||
physics_nodes/CCPhysicsDebugNode.cpp \
|
||||
physics_nodes/CCPhysicsSprite.cpp \
|
||||
platform/CCSAXParser.cpp \
|
||||
platform/CCThread.cpp \
|
||||
platform/platform.cpp \
|
||||
|
|
|
@ -27,7 +27,7 @@ THE SOFTWARE.
|
|||
#include "cocoa/CCString.h"
|
||||
#include "CCGL.h"
|
||||
|
||||
#include "CCDrawingPrimitives.h"
|
||||
#include "draw_nodes/CCDrawingPrimitives.h"
|
||||
#include "CCDirector.h"
|
||||
#include "kazmath/GL/matrix.h"
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "CCDrawNode.h"
|
||||
#include "support/CCPointExtension.h"
|
||||
#include "shaders/CCShaderCache.h"
|
||||
#include "CCGL.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
|
@ -110,8 +111,10 @@ CCDrawNode::~CCDrawNode()
|
|||
glDeleteBuffers(1, &m_uVbo);
|
||||
m_uVbo = 0;
|
||||
|
||||
#if CC_TEXTURE_ATLAS_USE_VAO
|
||||
glDeleteVertexArrays(1, &m_uVao);
|
||||
m_uVao = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
CCDrawNode* CCDrawNode::create()
|
||||
|
@ -146,8 +149,10 @@ bool CCDrawNode::init()
|
|||
|
||||
ensureCapacity(512);
|
||||
|
||||
#if CC_TEXTURE_ATLAS_USE_VAO
|
||||
glGenVertexArrays(1, &m_uVao);
|
||||
ccGLBindVAO(m_uVao);
|
||||
#endif
|
||||
|
||||
glGenBuffers(1, &m_uVbo);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, m_uVbo);
|
||||
|
@ -163,7 +168,10 @@ bool CCDrawNode::init()
|
|||
glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, sizeof(ccV2F_C4B_T2F), (GLvoid *)offsetof(ccV2F_C4B_T2F, texCoords));
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
|
||||
#if CC_TEXTURE_ATLAS_USE_VAO
|
||||
ccGLBindVAO(0);
|
||||
#endif
|
||||
|
||||
CHECK_GL_ERROR_DEBUG();
|
||||
|
||||
|
@ -174,16 +182,34 @@ bool CCDrawNode::init()
|
|||
|
||||
void CCDrawNode::render()
|
||||
{
|
||||
glBindBuffer(GL_ARRAY_BUFFER, m_uVbo);
|
||||
|
||||
if (m_bDirty)
|
||||
{
|
||||
glBindBuffer(GL_ARRAY_BUFFER, m_uVbo);
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(ccV2F_C4B_T2F)*m_uBufferCapacity, m_pBuffer, GL_STREAM_DRAW);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
m_bDirty = false;
|
||||
}
|
||||
|
||||
|
||||
#if CC_TEXTURE_ATLAS_USE_VAO
|
||||
ccGLBindVAO(m_uVao);
|
||||
#else
|
||||
ccGLEnableVertexAttribs(kCCVertexAttribFlag_PosColorTex);
|
||||
|
||||
// vertex
|
||||
int diff = offsetof(ccV2F_C4B_T2F, vertices);
|
||||
glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, sizeof(ccV2F_C4B_T2F), (GLvoid *)(m_pBuffer+diff));
|
||||
|
||||
// color
|
||||
diff = offsetof(ccV2F_C4B_T2F, colors);
|
||||
glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_FALSE, sizeof(ccV2F_C4B_T2F), (GLvoid *)(m_pBuffer+diff));
|
||||
|
||||
// texcood
|
||||
diff = offsetof(ccV2F_C4B_T2F, texCoords);
|
||||
glVertexAttribPointer(kCCVertexAttrib_Color, 2, GL_FLOAT, GL_FALSE, sizeof(ccV2F_C4B_T2F), (GLvoid *)(m_pBuffer+diff));
|
||||
#endif
|
||||
|
||||
glDrawArrays(GL_TRIANGLES, 0, m_nBufferCount);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
|
||||
CC_INCREMENT_GL_DRAWS(1);
|
||||
CHECK_GL_ERROR_DEBUG();
|
||||
|
|
|
@ -26,7 +26,7 @@ THE SOFTWARE.
|
|||
#include "CCLabelAtlas.h"
|
||||
#include "textures/CCTextureAtlas.h"
|
||||
#include "support/CCPointExtension.h"
|
||||
#include "CCDrawingPrimitives.h"
|
||||
#include "draw_nodes/CCDrawingPrimitives.h"
|
||||
#include "ccConfig.h"
|
||||
#include "shaders/CCShaderCache.h"
|
||||
#include "shaders/CCGLProgram.h"
|
||||
|
|
|
@ -35,7 +35,7 @@ http://www.angelcode.com/products/bmfont/ (Free, Windows only)
|
|||
#include "platform/platform.h"
|
||||
#include "cocoa/CCDictionary.h"
|
||||
#include "CCConfiguration.h"
|
||||
#include "CCDrawingPrimitives.h"
|
||||
#include "draw_nodes/CCDrawingPrimitives.h"
|
||||
#include "sprite_nodes/CCSprite.h"
|
||||
#include "support/CCPointExtension.h"
|
||||
#include "platform/CCFileUtils.h"
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
*/
|
||||
|
||||
#include "CCClippingNode.h"
|
||||
#import "kazmath/GL/matrix.h"
|
||||
#include "kazmath/GL/matrix.h"
|
||||
#include "shaders/CCGLProgram.h"
|
||||
#include "shaders/CCShaderCache.h"
|
||||
#include "CCDirector.h"
|
||||
|
|
|
@ -32,7 +32,7 @@ THE SOFTWARE.
|
|||
#include "shaders/ccGLStateCache.h"
|
||||
#include "CCDirector.h"
|
||||
#include "support/TransformUtils.h"
|
||||
#include "CCDrawingPrimitives.h"
|
||||
#include "draw_nodes/CCDrawingPrimitives.h"
|
||||
// extern
|
||||
#include "kazmath/GL/matrix.h"
|
||||
|
||||
|
|
|
@ -36,10 +36,13 @@ THE SOFTWARE.
|
|||
|
||||
|
||||
#if CC_TEXTURE_ATLAS_USE_VAO
|
||||
#include <EGL/egl.h>
|
||||
PFNGLGENVERTEXARRAYSOESPROC glGenVertexArraysOESEXT = 0;
|
||||
PFNGLBINDVERTEXARRAYOESPROC glBindVertexArrayOESEXT = 0;
|
||||
PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArraysOESEXT = 0;
|
||||
|
||||
// <EGL/egl.h> exists since android 2.3
|
||||
#include <EGL/egl.h>
|
||||
PFNGLGENVERTEXARRAYSOESPROC glGenVertexArraysOESEXT = 0;
|
||||
PFNGLBINDVERTEXARRAYOESPROC glBindVertexArrayOESEXT = 0;
|
||||
PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArraysOESEXT = 0;
|
||||
|
||||
#endif
|
||||
|
||||
void initExtensions() {
|
||||
|
|
|
@ -25,11 +25,15 @@ THE SOFTWARE.
|
|||
#ifndef __CCGL_H__
|
||||
#define __CCGL_H__
|
||||
|
||||
#define glClearDepth glClearDepthf
|
||||
#define glDeleteVertexArrays glDeleteVertexArraysOES
|
||||
#define glGenVertexArrays glGenVertexArraysOES
|
||||
#define glBindVertexArray glBindVertexArrayOES
|
||||
#define CC_GL_DEPTH24_STENCIL8 GL_DEPTH24_STENCIL8_OES
|
||||
#define glClearDepth glClearDepthf
|
||||
#define glDeleteVertexArrays glDeleteVertexArraysOES
|
||||
#define glGenVertexArrays glGenVertexArraysOES
|
||||
#define glBindVertexArray glBindVertexArrayOES
|
||||
#define glMapBuffer glMapBufferOES
|
||||
#define glUnmapBuffer glUnmapBufferOES
|
||||
|
||||
#define GL_DEPTH24_STENCIL8 GL_DEPTH24_STENCIL8_OES
|
||||
#define GL_WRITE_ONLY GL_WRITE_ONLY_OES
|
||||
|
||||
// GL_GLEXT_PROTOTYPES isn't defined in glplatform.h on android ndk r7
|
||||
// we manually define it here
|
||||
|
@ -43,6 +47,10 @@ THE SOFTWARE.
|
|||
#include <GLES2/gl2ext.h>
|
||||
// gl2.h doesn't define GLchar on Android
|
||||
typedef char GLchar;
|
||||
// android defines GL_BGRA_EXT but not GL_BRGA
|
||||
#ifndef GL_BGRA
|
||||
#define GL_BGRA 0x80E1
|
||||
#endif
|
||||
|
||||
//declare here while define in CCEGLView_android.cpp
|
||||
extern PFNGLGENVERTEXARRAYSOESPROC glGenVertexArraysOESEXT;
|
||||
|
|
|
@ -179,6 +179,8 @@ void ccGLDeleteTextureN(GLuint textureUnit, GLuint textureId)
|
|||
|
||||
void ccGLBindVAO(GLuint vaoId)
|
||||
{
|
||||
#if CC_TEXTURE_ATLAS_USE_VAO
|
||||
|
||||
#if CC_ENABLE_GL_STATE_CACHE
|
||||
if (s_uVAO != vaoId)
|
||||
{
|
||||
|
@ -187,6 +189,8 @@ void ccGLBindVAO(GLuint vaoId)
|
|||
}
|
||||
#else
|
||||
glBindVertexArray(vaoId);
|
||||
#endif // CC_ENABLE_GL_STATE_CACHE
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -32,13 +32,12 @@ THE SOFTWARE.
|
|||
#include "CCSpriteFrame.h"
|
||||
#include "CCSpriteFrameCache.h"
|
||||
#include "textures/CCTextureCache.h"
|
||||
#include "CCDrawingPrimitives.h"
|
||||
#include "draw_nodes/CCDrawingPrimitives.h"
|
||||
#include "shaders/CCShaderCache.h"
|
||||
#include "shaders/ccGLStateCache.h"
|
||||
#include "shaders/CCGLProgram.h"
|
||||
#include "CCDirector.h"
|
||||
#include "support/CCPointExtension.h"
|
||||
#include "CCDrawingPrimitives.h"
|
||||
#include "cocoa/CCGeometry.h"
|
||||
#include "textures/CCTexture2D.h"
|
||||
#include "cocoa/CCAffineTransform.h"
|
||||
|
|
|
@ -28,7 +28,7 @@ THE SOFTWARE.
|
|||
#include "ccConfig.h"
|
||||
#include "CCSprite.h"
|
||||
#include "effects/CCGrid.h"
|
||||
#include "CCDrawingPrimitives.h"
|
||||
#include "draw_nodes/CCDrawingPrimitives.h"
|
||||
#include "textures/CCTextureCache.h"
|
||||
#include "support/CCPointExtension.h"
|
||||
#include "shaders/CCShaderCache.h"
|
||||
|
|
|
@ -900,11 +900,12 @@ void VolatileTexture::reloadAllTextures()
|
|||
case kString:
|
||||
{
|
||||
vt->texture->initWithString(vt->m_strText.c_str(),
|
||||
vt->m_size,
|
||||
vt->m_alignment,
|
||||
vt->m_vAlignment,
|
||||
vt->m_strFontName.c_str(),
|
||||
vt->m_fFontSize);
|
||||
vt->m_strFontName.c_str(),
|
||||
vt->m_fFontSize,
|
||||
vt->m_size,
|
||||
vt->m_alignment,
|
||||
vt->m_vAlignment
|
||||
);
|
||||
}
|
||||
break;
|
||||
case kImage:
|
||||
|
|
Loading…
Reference in New Issue