mirror of https://github.com/axmolengine/axmol.git
Merge pull request #39 from chuanweizhang2013/v3luaruntime
V3luaruntime
This commit is contained in:
commit
60f561b203
|
@ -0,0 +1,151 @@
|
||||||
|
// Protocol Buffers - Google's data interchange format
|
||||||
|
// Copyright 2012 Google Inc. All rights reserved.
|
||||||
|
// http://code.google.com/p/protobuf/
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
// This file is an internal atomic implementation, use atomicops.h instead.
|
||||||
|
//
|
||||||
|
// LinuxKernelCmpxchg and Barrier_AtomicIncrement are from Google Gears.
|
||||||
|
|
||||||
|
#ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_ARM_GCC_H_
|
||||||
|
#define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_ARM_GCC_H_
|
||||||
|
|
||||||
|
namespace google {
|
||||||
|
namespace protobuf {
|
||||||
|
namespace internal {
|
||||||
|
|
||||||
|
// 0xffff0fc0 is the hard coded address of a function provided by
|
||||||
|
// the kernel which implements an atomic compare-exchange. On older
|
||||||
|
// ARM architecture revisions (pre-v6) this may be implemented using
|
||||||
|
// a syscall. This address is stable, and in active use (hard coded)
|
||||||
|
// by at least glibc-2.7 and the Android C library.
|
||||||
|
typedef Atomic32 (*LinuxKernelCmpxchgFunc)(Atomic32 old_value,
|
||||||
|
Atomic32 new_value,
|
||||||
|
volatile Atomic32* ptr);
|
||||||
|
LinuxKernelCmpxchgFunc pLinuxKernelCmpxchg __attribute__((weak)) =
|
||||||
|
(LinuxKernelCmpxchgFunc) 0xffff0fc0;
|
||||||
|
|
||||||
|
typedef void (*LinuxKernelMemoryBarrierFunc)(void);
|
||||||
|
LinuxKernelMemoryBarrierFunc pLinuxKernelMemoryBarrier __attribute__((weak)) =
|
||||||
|
(LinuxKernelMemoryBarrierFunc) 0xffff0fa0;
|
||||||
|
|
||||||
|
|
||||||
|
inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
|
||||||
|
Atomic32 old_value,
|
||||||
|
Atomic32 new_value) {
|
||||||
|
Atomic32 prev_value = *ptr;
|
||||||
|
do {
|
||||||
|
if (!pLinuxKernelCmpxchg(old_value, new_value,
|
||||||
|
const_cast<Atomic32*>(ptr))) {
|
||||||
|
return old_value;
|
||||||
|
}
|
||||||
|
prev_value = *ptr;
|
||||||
|
} while (prev_value == old_value);
|
||||||
|
return prev_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
|
||||||
|
Atomic32 new_value) {
|
||||||
|
Atomic32 old_value;
|
||||||
|
do {
|
||||||
|
old_value = *ptr;
|
||||||
|
} while (pLinuxKernelCmpxchg(old_value, new_value,
|
||||||
|
const_cast<Atomic32*>(ptr)));
|
||||||
|
return old_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||||
|
Atomic32 increment) {
|
||||||
|
return Barrier_AtomicIncrement(ptr, increment);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||||
|
Atomic32 increment) {
|
||||||
|
for (;;) {
|
||||||
|
// Atomic exchange the old value with an incremented one.
|
||||||
|
Atomic32 old_value = *ptr;
|
||||||
|
Atomic32 new_value = old_value + increment;
|
||||||
|
if (pLinuxKernelCmpxchg(old_value, new_value,
|
||||||
|
const_cast<Atomic32*>(ptr)) == 0) {
|
||||||
|
// The exchange took place as expected.
|
||||||
|
return new_value;
|
||||||
|
}
|
||||||
|
// Otherwise, *ptr changed mid-loop and we need to retry.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
|
||||||
|
Atomic32 old_value,
|
||||||
|
Atomic32 new_value) {
|
||||||
|
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
|
||||||
|
Atomic32 old_value,
|
||||||
|
Atomic32 new_value) {
|
||||||
|
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||||
|
*ptr = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void MemoryBarrier() {
|
||||||
|
pLinuxKernelMemoryBarrier();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||||
|
*ptr = value;
|
||||||
|
MemoryBarrier();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||||
|
MemoryBarrier();
|
||||||
|
*ptr = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
|
||||||
|
return *ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
|
||||||
|
Atomic32 value = *ptr;
|
||||||
|
MemoryBarrier();
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
|
||||||
|
MemoryBarrier();
|
||||||
|
return *ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace internal
|
||||||
|
} // namespace protobuf
|
||||||
|
} // namespace google
|
||||||
|
|
||||||
|
#endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_ARM_GCC_H_
|
|
@ -4,7 +4,6 @@
|
||||||
extern const unsigned char __shinePngData[11776];
|
extern const unsigned char __shinePngData[11776];
|
||||||
extern const unsigned char __portraitPngData[122214];
|
extern const unsigned char __portraitPngData[122214];
|
||||||
extern const unsigned char __playEnablePngData[20254];
|
extern const unsigned char __playEnablePngData[20254];
|
||||||
extern const unsigned char __playDisablePngData[24174];
|
|
||||||
extern const unsigned char __landscapePngData[115832];
|
extern const unsigned char __landscapePngData[115832];
|
||||||
|
|
||||||
#endif // _RESDATA__H_
|
#endif // _RESDATA__H_
|
|
@ -54,10 +54,10 @@ extern string getIPAddress();
|
||||||
//1M size
|
//1M size
|
||||||
#define MAXPROTOLENGTH 1048576
|
#define MAXPROTOLENGTH 1048576
|
||||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
|
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
|
||||||
#define sleep(t) Sleep(t)
|
#define usleep(t) Sleep(t)
|
||||||
#elif(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
|
#else
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#define sleep(t) usleep(t)
|
#define usleep(t) usleep(t)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char* getRuntimeVersion()
|
const char* getRuntimeVersion()
|
||||||
|
@ -364,7 +364,7 @@ bool CreateDir(const char *sPathName)
|
||||||
if(access(DirName, NULL)!=0 )
|
if(access(DirName, NULL)!=0 )
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if(mkdir(DirName/*, 0755*/)==-1)
|
if(_mkdir(DirName/*, 0755*/)==-1)
|
||||||
#else
|
#else
|
||||||
if(mkdir(DirName, 0755)==-1)
|
if(mkdir(DirName, 0755)==-1)
|
||||||
#endif
|
#endif
|
||||||
|
@ -386,7 +386,7 @@ void recvBuf(int fd,char *pbuf,int bufsize)
|
||||||
while (startFlagLen != 0){
|
while (startFlagLen != 0){
|
||||||
int recvlen = recv(fd, pbuf+bufsize-startFlagLen,startFlagLen ,0);
|
int recvlen = recv(fd, pbuf+bufsize-startFlagLen,startFlagLen ,0);
|
||||||
if (recvlen<=0) {
|
if (recvlen<=0) {
|
||||||
sleep(1);
|
usleep(1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
startFlagLen -= recvlen;
|
startFlagLen -= recvlen;
|
||||||
|
@ -458,7 +458,7 @@ void FileServer::loopReceiveFile()
|
||||||
int result= recv(fd, _protoBuf, recvLen,0);
|
int result= recv(fd, _protoBuf, recvLen,0);
|
||||||
//cocos2d::log("recv fullfilename = %s,file size:%d",recvDataBuf.fileProto.file_name().c_str(),result);
|
//cocos2d::log("recv fullfilename = %s,file size:%d",recvDataBuf.fileProto.file_name().c_str(),result);
|
||||||
if (result<=0) {
|
if (result<=0) {
|
||||||
sleep(1);
|
usleep(1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
memcpy(contentbuf+contentSize-recvTotalLen,_protoBuf,result);
|
memcpy(contentbuf+contentSize-recvTotalLen,_protoBuf,result);
|
||||||
|
@ -497,7 +497,7 @@ void FileServer::loopWriteFile()
|
||||||
int recvSize = _recvBufList.size();
|
int recvSize = _recvBufList.size();
|
||||||
_recvBufListMutex.unlock();
|
_recvBufListMutex.unlock();
|
||||||
if(0 == recvSize){
|
if(0 == recvSize){
|
||||||
sleep(500);
|
usleep(500);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -580,7 +580,7 @@ void FileServer::loopResponse()
|
||||||
int responseSize = _responseBufList.size();
|
int responseSize = _responseBufList.size();
|
||||||
_responseBufListMutex.unlock();
|
_responseBufListMutex.unlock();
|
||||||
if(0 == responseSize){
|
if(0 == responseSize){
|
||||||
sleep(500);
|
usleep(500);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -662,12 +662,12 @@ public:
|
||||||
shineSprite->setOpacity(0);
|
shineSprite->setOpacity(0);
|
||||||
shineSprite->setPosition(Vec2(lanscaptX,lanscaptY));
|
shineSprite->setPosition(Vec2(lanscaptX,lanscaptY));
|
||||||
Vector<FiniteTimeAction*> arrayOfActions;
|
Vector<FiniteTimeAction*> arrayOfActions;
|
||||||
arrayOfActions.pushBack(DelayTime::create(0.4));
|
arrayOfActions.pushBack(DelayTime::create(0.4f));
|
||||||
arrayOfActions.pushBack(FadeTo::create(0.8f,200));
|
arrayOfActions.pushBack(FadeTo::create(0.8f,200));
|
||||||
arrayOfActions.pushBack(FadeTo::create(0.8f,255));
|
arrayOfActions.pushBack(FadeTo::create(0.8f,255));
|
||||||
arrayOfActions.pushBack(FadeTo::create(0.8f,200));
|
arrayOfActions.pushBack(FadeTo::create(0.8f,200));
|
||||||
arrayOfActions.pushBack(FadeTo::create(0.8f,0));
|
arrayOfActions.pushBack(FadeTo::create(0.8f,0));
|
||||||
arrayOfActions.pushBack(DelayTime::create(0.4));
|
arrayOfActions.pushBack(DelayTime::create(0.4f));
|
||||||
Sequence * arrayAction = Sequence::create(arrayOfActions);
|
Sequence * arrayAction = Sequence::create(arrayOfActions);
|
||||||
shineSprite->runAction(RepeatForever::create(Sequence::create(arrayOfActions)));
|
shineSprite->runAction(RepeatForever::create(Sequence::create(arrayOfActions)));
|
||||||
addChild(shineSprite,9998);
|
addChild(shineSprite,9998);
|
||||||
|
@ -675,7 +675,10 @@ public:
|
||||||
string strip = getIPAddress();
|
string strip = getIPAddress();
|
||||||
char szIPAddress[512]={0};
|
char szIPAddress[512]={0};
|
||||||
sprintf(szIPAddress, "IP: %s",strip.c_str());
|
sprintf(szIPAddress, "IP: %s",strip.c_str());
|
||||||
auto IPlabel = Label::create(szIPAddress, fontName.c_str(), 72);
|
auto IPlabel = Label::create();
|
||||||
|
IPlabel->setString(szIPAddress);
|
||||||
|
IPlabel->setSystemFontName(fontName.c_str());
|
||||||
|
IPlabel->setSystemFontSize(72);
|
||||||
IPlabel->setAnchorPoint(Vec2(0,0));
|
IPlabel->setAnchorPoint(Vec2(0,0));
|
||||||
int spaceSizex = 72;
|
int spaceSizex = 72;
|
||||||
int spaceSizey = 200;
|
int spaceSizey = 200;
|
||||||
|
@ -689,15 +692,20 @@ public:
|
||||||
|
|
||||||
char szVersion[1024]={0};
|
char szVersion[1024]={0};
|
||||||
sprintf(szVersion,"runtimeVersion:%s \ncocos2dVersion:%s",getRuntimeVersion(),cocos2dVersion());
|
sprintf(szVersion,"runtimeVersion:%s \ncocos2dVersion:%s",getRuntimeVersion(),cocos2dVersion());
|
||||||
Label* verLable = Label::create(szVersion, fontName.c_str(), 24);
|
Label* verLable = Label::create();
|
||||||
|
verLable->setString(szVersion);
|
||||||
|
verLable->setSystemFontName(fontName.c_str());
|
||||||
|
verLable->setSystemFontSize(24);
|
||||||
verLable->setAnchorPoint(Vec2(0,0));
|
verLable->setAnchorPoint(Vec2(0,0));
|
||||||
int width = verLable->getBoundingBox().size.width;
|
int width = verLable->getBoundingBox().size.width;
|
||||||
int height = verLable->getBoundingBox().size.height;
|
int height = verLable->getBoundingBox().size.height;
|
||||||
verLable->setPosition( Point(VisibleRect::right().x-width, VisibleRect::rightBottom().y) );
|
verLable->setPosition( Point(VisibleRect::right().x-width, VisibleRect::rightBottom().y) );
|
||||||
verLable->setAlignment(TextHAlignment::LEFT);
|
verLable->setAlignment(TextHAlignment::LEFT);
|
||||||
addChild(verLable, 9002);
|
addChild(verLable, 9002);
|
||||||
|
_labelUploadFile = Label::create();
|
||||||
_labelUploadFile = Label::create(_transferTip.c_str(), fontName.c_str(), 36);
|
_labelUploadFile->setString(_transferTip);
|
||||||
|
_labelUploadFile->setSystemFontName(fontName.c_str());
|
||||||
|
_labelUploadFile->setSystemFontSize(36);
|
||||||
_labelUploadFile->setAnchorPoint(Vec2(0,0));
|
_labelUploadFile->setAnchorPoint(Vec2(0,0));
|
||||||
_labelUploadFile->setPosition( Point(VisibleRect::leftTop().x+spaceSizex, IPlabel->getPositionY()-spaceSizex) );
|
_labelUploadFile->setPosition( Point(VisibleRect::leftTop().x+spaceSizex, IPlabel->getPositionY()-spaceSizex) );
|
||||||
_labelUploadFile->setAlignment(TextHAlignment::LEFT);
|
_labelUploadFile->setAlignment(TextHAlignment::LEFT);
|
||||||
|
|
Loading…
Reference in New Issue