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 __portraitPngData[122214];
|
||||
extern const unsigned char __playEnablePngData[20254];
|
||||
extern const unsigned char __playDisablePngData[24174];
|
||||
extern const unsigned char __landscapePngData[115832];
|
||||
|
||||
#endif // _RESDATA__H_
|
|
@ -54,10 +54,10 @@ extern string getIPAddress();
|
|||
//1M size
|
||||
#define MAXPROTOLENGTH 1048576
|
||||
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
|
||||
#define sleep(t) Sleep(t)
|
||||
#elif(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
|
||||
#define usleep(t) Sleep(t)
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#define sleep(t) usleep(t)
|
||||
#define usleep(t) usleep(t)
|
||||
#endif
|
||||
|
||||
const char* getRuntimeVersion()
|
||||
|
@ -364,7 +364,7 @@ bool CreateDir(const char *sPathName)
|
|||
if(access(DirName, NULL)!=0 )
|
||||
{
|
||||
#ifdef _WIN32
|
||||
if(mkdir(DirName/*, 0755*/)==-1)
|
||||
if(_mkdir(DirName/*, 0755*/)==-1)
|
||||
#else
|
||||
if(mkdir(DirName, 0755)==-1)
|
||||
#endif
|
||||
|
@ -386,7 +386,7 @@ void recvBuf(int fd,char *pbuf,int bufsize)
|
|||
while (startFlagLen != 0){
|
||||
int recvlen = recv(fd, pbuf+bufsize-startFlagLen,startFlagLen ,0);
|
||||
if (recvlen<=0) {
|
||||
sleep(1);
|
||||
usleep(1);
|
||||
continue;
|
||||
}
|
||||
startFlagLen -= recvlen;
|
||||
|
@ -458,7 +458,7 @@ void FileServer::loopReceiveFile()
|
|||
int result= recv(fd, _protoBuf, recvLen,0);
|
||||
//cocos2d::log("recv fullfilename = %s,file size:%d",recvDataBuf.fileProto.file_name().c_str(),result);
|
||||
if (result<=0) {
|
||||
sleep(1);
|
||||
usleep(1);
|
||||
continue;
|
||||
}
|
||||
memcpy(contentbuf+contentSize-recvTotalLen,_protoBuf,result);
|
||||
|
@ -497,7 +497,7 @@ void FileServer::loopWriteFile()
|
|||
int recvSize = _recvBufList.size();
|
||||
_recvBufListMutex.unlock();
|
||||
if(0 == recvSize){
|
||||
sleep(500);
|
||||
usleep(500);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -580,7 +580,7 @@ void FileServer::loopResponse()
|
|||
int responseSize = _responseBufList.size();
|
||||
_responseBufListMutex.unlock();
|
||||
if(0 == responseSize){
|
||||
sleep(500);
|
||||
usleep(500);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -662,12 +662,12 @@ public:
|
|||
shineSprite->setOpacity(0);
|
||||
shineSprite->setPosition(Vec2(lanscaptX,lanscaptY));
|
||||
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,255));
|
||||
arrayOfActions.pushBack(FadeTo::create(0.8f,200));
|
||||
arrayOfActions.pushBack(FadeTo::create(0.8f,0));
|
||||
arrayOfActions.pushBack(DelayTime::create(0.4));
|
||||
arrayOfActions.pushBack(DelayTime::create(0.4f));
|
||||
Sequence * arrayAction = Sequence::create(arrayOfActions);
|
||||
shineSprite->runAction(RepeatForever::create(Sequence::create(arrayOfActions)));
|
||||
addChild(shineSprite,9998);
|
||||
|
@ -675,7 +675,10 @@ public:
|
|||
string strip = getIPAddress();
|
||||
char szIPAddress[512]={0};
|
||||
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));
|
||||
int spaceSizex = 72;
|
||||
int spaceSizey = 200;
|
||||
|
@ -689,15 +692,20 @@ public:
|
|||
|
||||
char szVersion[1024]={0};
|
||||
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));
|
||||
int width = verLable->getBoundingBox().size.width;
|
||||
int height = verLable->getBoundingBox().size.height;
|
||||
verLable->setPosition( Point(VisibleRect::right().x-width, VisibleRect::rightBottom().y) );
|
||||
verLable->setAlignment(TextHAlignment::LEFT);
|
||||
addChild(verLable, 9002);
|
||||
|
||||
_labelUploadFile = Label::create(_transferTip.c_str(), fontName.c_str(), 36);
|
||||
_labelUploadFile = Label::create();
|
||||
_labelUploadFile->setString(_transferTip);
|
||||
_labelUploadFile->setSystemFontName(fontName.c_str());
|
||||
_labelUploadFile->setSystemFontSize(36);
|
||||
_labelUploadFile->setAnchorPoint(Vec2(0,0));
|
||||
_labelUploadFile->setPosition( Point(VisibleRect::leftTop().x+spaceSizex, IPlabel->getPositionY()-spaceSizex) );
|
||||
_labelUploadFile->setAlignment(TextHAlignment::LEFT);
|
||||
|
|
Loading…
Reference in New Issue