forked from teamnwah/openmw-tes3coop
Merge pull request #375 from OpenMW/master
Add OpenMW commits up to 29 Jan 2018
This commit is contained in:
commit
78df8c5ebe
5 changed files with 69 additions and 41 deletions
|
@ -1,7 +1,9 @@
|
|||
int stderr = 0; // Hack: fix linker error
|
||||
|
||||
#ifdef __ANDROID__
|
||||
#include "SDL_main.h"
|
||||
#include <SDL_gamecontroller.h>
|
||||
#include <SDL_mouse.h>
|
||||
#include <SDL_events.h>
|
||||
|
||||
/*******************************************************************************
|
||||
Functions called by JNI
|
||||
|
@ -15,6 +17,25 @@ extern int argcData;
|
|||
extern const char **argvData;
|
||||
void releaseArgv();
|
||||
|
||||
|
||||
int Java_org_libsdl_app_SDLActivity_getMouseX(JNIEnv *env, jclass cls, jobject obj) {
|
||||
int ret = 0;
|
||||
SDL_GetMouseState(&ret, NULL);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
int Java_org_libsdl_app_SDLActivity_getMouseY(JNIEnv *env, jclass cls, jobject obj) {
|
||||
int ret = 0;
|
||||
SDL_GetMouseState(NULL, &ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int Java_org_libsdl_app_SDLActivity_isMouseShown(JNIEnv *env, jclass cls, jobject obj) {
|
||||
return SDL_ShowCursor(SDL_QUERY);
|
||||
}
|
||||
|
||||
|
||||
int Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls,
|
||||
jobject obj) {
|
||||
|
||||
|
@ -24,6 +45,9 @@ int Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls,
|
|||
|
||||
SDL_SetMainReady();
|
||||
|
||||
// On Android, we use a virtual controller with guid="Virtual"
|
||||
SDL_GameControllerAddMapping("5669727475616c000000000000000000,Virtual,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4");
|
||||
|
||||
/* Run the application code! */
|
||||
|
||||
int status;
|
||||
|
@ -36,5 +60,3 @@ int Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls,
|
|||
return status;
|
||||
}
|
||||
|
||||
#endif /* __ANDROID__ */
|
||||
|
||||
|
|
|
@ -13,24 +13,37 @@ namespace ESM
|
|||
#pragma pack(push)
|
||||
#pragma pack(1)
|
||||
|
||||
struct Data
|
||||
{
|
||||
/* File format version. This is actually a float, the supported
|
||||
versions are 1.2 and 1.3. These correspond to:
|
||||
1.2 = 0x3f99999a and 1.3 = 0x3fa66666
|
||||
*/
|
||||
unsigned int version;
|
||||
int type; // 0=esp, 1=esm, 32=ess (unused)
|
||||
NAME32 author; // Author's name
|
||||
NAME256 desc; // File description
|
||||
int records; // Number of records
|
||||
};
|
||||
|
||||
struct GMDT
|
||||
{
|
||||
float mCurrentHealth;
|
||||
float mMaximumHealth;
|
||||
float mHour;
|
||||
unsigned char unknown1[12];
|
||||
NAME64 mCurrentCell;
|
||||
unsigned char unknown2[4];
|
||||
NAME32 mPlayerName;
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
/// \brief File header record
|
||||
struct Header
|
||||
{
|
||||
static const int CurrentFormat = 0; // most recent known format
|
||||
|
||||
struct Data
|
||||
{
|
||||
/* File format version. This is actually a float, the supported
|
||||
versions are 1.2 and 1.3. These correspond to:
|
||||
1.2 = 0x3f99999a and 1.3 = 0x3fa66666
|
||||
*/
|
||||
unsigned int version;
|
||||
int type; // 0=esp, 1=esm, 32=ess (unused)
|
||||
NAME32 author; // Author's name
|
||||
NAME256 desc; // File description
|
||||
int records; // Number of records
|
||||
};
|
||||
|
||||
// Defines another files (esm or esp) that this file depends upon.
|
||||
struct MasterData
|
||||
{
|
||||
|
@ -39,16 +52,6 @@ namespace ESM
|
|||
int index; // Position of the parent file in the global list of loaded files
|
||||
};
|
||||
|
||||
struct GMDT
|
||||
{
|
||||
float mCurrentHealth;
|
||||
float mMaximumHealth;
|
||||
float mHour;
|
||||
unsigned char unknown1[12];
|
||||
NAME64 mCurrentCell;
|
||||
unsigned char unknown2[4];
|
||||
NAME32 mPlayerName;
|
||||
};
|
||||
GMDT mGameData; // Used in .ess savegames only
|
||||
std::vector<unsigned char> mSCRD; // Used in .ess savegames only, unknown
|
||||
std::vector<unsigned char> mSCRS; // Used in .ess savegames only, screenshot
|
||||
|
@ -62,7 +65,6 @@ namespace ESM
|
|||
void load (ESMReader &esm);
|
||||
void save (ESMWriter &esm);
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -203,19 +203,14 @@ namespace SDLUtil
|
|||
void SDLCursorManager::cursorChanged(const std::string& name)
|
||||
{
|
||||
mCurrentCursor = name;
|
||||
|
||||
CursorMap::const_iterator curs_iter = mCursorMap.find(name);
|
||||
|
||||
if(curs_iter != mCursorMap.end())
|
||||
{
|
||||
//we have this cursor
|
||||
_setGUICursor(name);
|
||||
}
|
||||
_setGUICursor(name);
|
||||
}
|
||||
|
||||
void SDLCursorManager::_setGUICursor(const std::string &name)
|
||||
{
|
||||
SDL_SetCursor(mCursorMap.find(name)->second);
|
||||
auto it = mCursorMap.find(name);
|
||||
if (it != mCursorMap.end())
|
||||
SDL_SetCursor(it->second);
|
||||
}
|
||||
|
||||
void SDLCursorManager::createCursor(const std::string& name, int rotDegrees, osg::Image* image, Uint8 hotspot_x, Uint8 hotspot_y)
|
||||
|
|
|
@ -92,9 +92,18 @@ void GraphicsWindowSDL2::init()
|
|||
SDL_GLContext oldCtx = SDL_GL_GetCurrentContext();
|
||||
|
||||
#if defined(OPENGL_ES) || defined(ANDROID)
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1);
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
|
||||
int major = 1;
|
||||
int minor = 1;
|
||||
char *ver = getenv("OPENMW_GLES_VERSION");
|
||||
|
||||
if (ver && strcmp(ver, "2") == 0) {
|
||||
major = 2;
|
||||
minor = 0;
|
||||
}
|
||||
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, major);
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, minor);
|
||||
#endif
|
||||
|
||||
mContext = SDL_GL_CreateContext(mWindow);
|
||||
|
|
4
extern/osg-ffmpeg-videoplayer/videostate.cpp
vendored
4
extern/osg-ffmpeg-videoplayer/videostate.cpp
vendored
|
@ -315,9 +315,9 @@ int VideoState::queue_picture(AVFrame *pFrame, double pts)
|
|||
vp->pts = pts;
|
||||
vp->data.resize((*this->video_st)->codec->width * (*this->video_st)->codec->height * 4);
|
||||
|
||||
uint8_t *dst = &vp->data[0];
|
||||
uint8_t *dst[4] = { &vp->data[0], nullptr, nullptr, nullptr };
|
||||
sws_scale(this->sws_context, pFrame->data, pFrame->linesize,
|
||||
0, (*this->video_st)->codec->height, &dst, this->rgbaFrame->linesize);
|
||||
0, (*this->video_st)->codec->height, dst, this->rgbaFrame->linesize);
|
||||
|
||||
// now we inform our display thread that we have a pic ready
|
||||
this->pictq_windex = (this->pictq_windex+1) % VIDEO_PICTURE_ARRAY_SIZE;
|
||||
|
|
Loading…
Reference in a new issue