forked from organicmaps/organicmaps-tmp
[msvc] Fix yg compilation issues.
This commit is contained in:
parent
916d5010bd
commit
a76c8d8d09
7 changed files with 97 additions and 89 deletions
|
@ -89,7 +89,7 @@ namespace yg
|
|||
|
||||
/// orphaning the old copy of the buffer data.
|
||||
/// this provides that the glMapBuffer will not wait.
|
||||
OGLCHECK(glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_size, 0, GL_DYNAMIC_DRAW));
|
||||
OGLCHECK(glBufferDataFn(GL_ELEMENT_ARRAY_BUFFER, m_size, 0, GL_DYNAMIC_DRAW));
|
||||
|
||||
m_gpuData = glMapBufferFn(GL_ELEMENT_ARRAY_BUFFER, GL_WRITE_ONLY_MWM);
|
||||
|
||||
|
|
|
@ -2,26 +2,26 @@
|
|||
|
||||
// buffer objects extensions
|
||||
|
||||
DEFINE_GL_PROC(PFNGLBINDBUFFERPROC, "glBindBufferFn", glBindBufferFn)
|
||||
DEFINE_GL_PROC(PFNGLGENBUFFERSPROC, "glGenBuffers", glGenBuffersFn)
|
||||
DEFINE_GL_PROC(PFNGLBUFFERDATAPROC, "glBufferData", glBufferDataFn)
|
||||
DEFINE_GL_PROC(PFNGLBUFFERSUBDATAPROC, "glBufferSubData", glBufferSubDataFn)
|
||||
DEFINE_GL_PROC(PFNGLDELETEBUFFERSPROC, "glDeleteBuffers", glDeleteBuffersFn)
|
||||
DEFINE_GL_PROC(PFNGLMAPBUFFERPROC, "glMapBuffer", glMapBufferFn)
|
||||
DEFINE_GL_PROC(PFNGLUNMAPBUFFERPROC, "glUnmapBuffer", glUnmapBufferFn)
|
||||
DEFINE_GL_PROC("glBindBufferFn", glBindBufferFn)
|
||||
DEFINE_GL_PROC("glGenBuffers", glGenBuffersFn)
|
||||
DEFINE_GL_PROC("glBufferData", glBufferDataFn)
|
||||
DEFINE_GL_PROC("glBufferSubData", glBufferSubDataFn)
|
||||
DEFINE_GL_PROC("glDeleteBuffers", glDeleteBuffersFn)
|
||||
DEFINE_GL_PROC("glMapBuffer", glMapBufferFn)
|
||||
DEFINE_GL_PROC("glUnmapBuffer", glUnmapBufferFn)
|
||||
|
||||
// framebuffers extensions
|
||||
|
||||
DEFINE_GL_PROC(PFNGLBINDFRAMEBUFFERPROC, "glBindFramebuffer", glBindFramebufferFn)
|
||||
DEFINE_GL_PROC(PFNGLFRAMEBUFFERTEXTURE2DPROC, "glFramebufferTexture2D", glFramebufferTexture2DFn)
|
||||
DEFINE_GL_PROC(PFNGLFRAMEBUFFERRENDERBUFFERPROC, "glFramebufferRenderbuffer", glFramebufferRenderbufferFn)
|
||||
DEFINE_GL_PROC(PFNGLGENFRAMEBUFFERSPROC, "glGenFramebuffers", glGenFramebuffersFn)
|
||||
DEFINE_GL_PROC(PFNGLDELETEFRAMEBUFFERSPROC, "glDeleteFramebuffers", glDeleteFramebuffersFn)
|
||||
DEFINE_GL_PROC(PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC, "glCheckFramebufferStatus", glCheckFramebufferStatusFn)
|
||||
DEFINE_GL_PROC("glBindFramebuffer", glBindFramebufferFn)
|
||||
DEFINE_GL_PROC("glFramebufferTexture2D", glFramebufferTexture2DFn)
|
||||
DEFINE_GL_PROC("glFramebufferRenderbuffer", glFramebufferRenderbufferFn)
|
||||
DEFINE_GL_PROC("glGenFramebuffers", glGenFramebuffersFn)
|
||||
DEFINE_GL_PROC("glDeleteFramebuffers", glDeleteFramebuffersFn)
|
||||
DEFINE_GL_PROC("glCheckFramebufferStatus", glCheckFramebufferStatusFn)
|
||||
|
||||
// renderbuffer extensions
|
||||
|
||||
DEFINE_GL_PROC(PFNGLGENRENDERBUFFERSPROC, "glGenRenderbuffers", glGenRenderbuffersFn)
|
||||
DEFINE_GL_PROC(PFNGLDELETERENDERBUFFERSEXTPROC, "glDeleteRenderbuffers", glDeleteRenderbuffersFn)
|
||||
DEFINE_GL_PROC(PFNGLBINDRENDERBUFFEREXTPROC, "glBindRenderbuffer", glBindRenderbufferFn)
|
||||
DEFINE_GL_PROC(PFNGLRENDERBUFFERSTORAGEEXTPROC, "glRenderbufferStorage", glRenderbufferStorageFn)
|
||||
DEFINE_GL_PROC("glGenRenderbuffers", glGenRenderbuffersFn)
|
||||
DEFINE_GL_PROC("glDeleteRenderbuffers", glDeleteRenderbuffersFn)
|
||||
DEFINE_GL_PROC("glBindRenderbuffer", glBindRenderbufferFn)
|
||||
DEFINE_GL_PROC("glRenderbufferStorage", glRenderbufferStorageFn)
|
||||
|
|
|
@ -2,16 +2,36 @@
|
|||
|
||||
#include "../../base/logging.hpp"
|
||||
#include "../../base/string_utils.hpp"
|
||||
|
||||
#include "../../std/bind.hpp"
|
||||
|
||||
#ifdef OMIM_OS_BADA
|
||||
#include <FBaseSys.h>
|
||||
#endif
|
||||
|
||||
|
||||
namespace yg
|
||||
{
|
||||
namespace gl
|
||||
{
|
||||
const int GL_FRAMEBUFFER_BINDING_MWM = GL_FRAMEBUFFER_BINDING_EXT;
|
||||
const int GL_FRAMEBUFFER_MWM = GL_FRAMEBUFFER_EXT;
|
||||
const int GL_FRAMEBUFFER_UNSUPPORTED_MWM = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
|
||||
const int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_MWM = GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT;
|
||||
const int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_MWM = GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT;
|
||||
const int GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_MWM = GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT;
|
||||
const int GL_FRAMEBUFFER_COMPLETE_MWM = GL_FRAMEBUFFER_COMPLETE_EXT;
|
||||
|
||||
const int GL_DEPTH_ATTACHMENT_MWM = GL_DEPTH_ATTACHMENT_EXT;
|
||||
const int GL_COLOR_ATTACHMENT0_MWM = GL_COLOR_ATTACHMENT0_EXT;
|
||||
const int GL_RENDERBUFFER_MWM = GL_RENDERBUFFER_EXT;
|
||||
const int GL_RENDERBUFFER_BINDING_MWM = GL_RENDERBUFFER_BINDING_EXT;
|
||||
const int GL_DEPTH_COMPONENT16_MWM = GL_DEPTH_COMPONENT16;
|
||||
const int GL_DEPTH_COMPONENT24_MWM = GL_DEPTH_COMPONENT24;
|
||||
const int GL_RGBA8_MWM = GL_RGBA8;
|
||||
|
||||
const int GL_WRITE_ONLY_MWM = GL_WRITE_ONLY;
|
||||
|
||||
platform_unsupported::platform_unsupported(char const * reason)
|
||||
: m_reason(reason)
|
||||
{}
|
||||
|
@ -57,25 +77,25 @@ namespace yg
|
|||
bool g_isFramebufferSupported = true;
|
||||
bool g_isRenderbufferSupported = true;
|
||||
|
||||
void (* glBindBufferFn) (GLenum target, GLuint buffer);
|
||||
void (* glGenBuffersFn) (GLsizei n, GLuint *buffers);
|
||||
void (* glBufferDataFn) (GLenum target, long size, const GLvoid *data, GLenum usage);
|
||||
void (* glBufferSubDataFn) (GLenum target, long offset, long size, const GLvoid *data);
|
||||
void (* glDeleteBuffersFn) (GLsizei n, const GLuint *buffers);
|
||||
void* (* glMapBufferFn) (GLenum target, GLenum access);
|
||||
GLboolean (* glUnmapBufferFn) (GLenum target);
|
||||
void (OPENGL_CALLING_CONVENTION * glBindBufferFn) (GLenum target, GLuint buffer);
|
||||
void (OPENGL_CALLING_CONVENTION * glGenBuffersFn) (GLsizei n, GLuint *buffers);
|
||||
void (OPENGL_CALLING_CONVENTION * glBufferDataFn) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
|
||||
void (OPENGL_CALLING_CONVENTION * glBufferSubDataFn) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
|
||||
void (OPENGL_CALLING_CONVENTION * glDeleteBuffersFn) (GLsizei n, const GLuint *buffers);
|
||||
void * (OPENGL_CALLING_CONVENTION * glMapBufferFn) (GLenum target, GLenum access);
|
||||
GLboolean (OPENGL_CALLING_CONVENTION * glUnmapBufferFn) (GLenum target);
|
||||
|
||||
void (* glBindFramebufferFn) (GLenum target, GLuint framebuffer);
|
||||
void (* glFramebufferTexture2DFn) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
void (* glFramebufferRenderbufferFn) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
void (* glGenFramebuffersFn) (GLsizei n, GLuint *framebuffers);
|
||||
void (* glDeleteFramebuffersFn) (GLsizei n, const GLuint *framebuffers);
|
||||
GLenum (* glCheckFramebufferStatusFn) (GLenum target);
|
||||
void (OPENGL_CALLING_CONVENTION * glBindFramebufferFn) (GLenum target, GLuint framebuffer);
|
||||
void (OPENGL_CALLING_CONVENTION * glFramebufferTexture2DFn) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
void (OPENGL_CALLING_CONVENTION * glFramebufferRenderbufferFn) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
void (OPENGL_CALLING_CONVENTION * glGenFramebuffersFn) (GLsizei n, GLuint *framebuffers);
|
||||
void (OPENGL_CALLING_CONVENTION * glDeleteFramebuffersFn) (GLsizei n, const GLuint *framebuffers);
|
||||
GLenum (OPENGL_CALLING_CONVENTION * glCheckFramebufferStatusFn) (GLenum target);
|
||||
|
||||
void (* glGenRenderbuffersFn) (GLsizei n, GLuint *renderbuffers);
|
||||
void (* glDeleteRenderbuffersFn) (GLsizei n, const GLuint *renderbuffers);
|
||||
void (* glBindRenderbufferFn) (GLenum target, GLuint renderbuffer);
|
||||
void (* glRenderbufferStorageFn) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
void (OPENGL_CALLING_CONVENTION * glGenRenderbuffersFn) (GLsizei n, GLuint *renderbuffers);
|
||||
void (OPENGL_CALLING_CONVENTION * glDeleteRenderbuffersFn) (GLsizei n, const GLuint *renderbuffers);
|
||||
void (OPENGL_CALLING_CONVENTION * glBindRenderbufferFn) (GLenum target, GLuint renderbuffer);
|
||||
void (OPENGL_CALLING_CONVENTION * glRenderbufferStorageFn) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
|
||||
bool g_doDeleteOnDestroy = true;
|
||||
|
||||
|
|
|
@ -2,9 +2,10 @@
|
|||
#include "../../std/target_os.hpp"
|
||||
|
||||
#if defined(OMIM_OS_WINDOWS)
|
||||
|
||||
#include "../../std/windows.hpp"
|
||||
#include <gl/gl.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include "../../3party/GL/glext.h"
|
||||
|
||||
#elif defined(OMIM_OS_BADA)
|
||||
#include <FGraphicsOpengl.h>
|
||||
|
@ -20,6 +21,7 @@
|
|||
#define OMIM_GL_ES
|
||||
#else
|
||||
#include <OpenGL/gl.h>
|
||||
#include <OpenGL/glext.h>
|
||||
#endif
|
||||
|
||||
#elif defined(OMIM_OS_ANDROID)
|
||||
|
@ -32,9 +34,18 @@
|
|||
#include <GL/glext.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef OMIM_OS_WINDOWS
|
||||
#define OPENGL_CALLING_CONVENTION __stdcall
|
||||
#else
|
||||
#define OPENGL_CALLING_CONVENTION
|
||||
#endif
|
||||
|
||||
|
||||
#include "../../base/src_point.hpp"
|
||||
#include "../../std/exception.hpp"
|
||||
|
||||
|
||||
namespace yg
|
||||
{
|
||||
namespace gl
|
||||
|
@ -47,13 +58,13 @@ namespace yg
|
|||
|
||||
extern const int GL_WRITE_ONLY_MWM;
|
||||
|
||||
extern void (* glBindBufferFn) (GLenum target, GLuint buffer);
|
||||
extern void (* glGenBuffersFn) (GLsizei n, GLuint *buffers);
|
||||
extern void (* glBufferDataFn) (GLenum target, long size, const GLvoid *data, GLenum usage);
|
||||
extern void (* glBufferSubDataFn) (GLenum target, long offset, long size, const GLvoid *data);
|
||||
extern void (* glDeleteBuffersFn) (GLsizei n, const GLuint *buffers);
|
||||
extern void* (* glMapBufferFn) (GLenum target, GLenum access);
|
||||
extern GLboolean (* glUnmapBufferFn) (GLenum target);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glBindBufferFn) (GLenum target, GLuint buffer);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glGenBuffersFn) (GLsizei n, GLuint *buffers);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glBufferDataFn) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glBufferSubDataFn) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glDeleteBuffersFn) (GLsizei n, const GLuint *buffers);
|
||||
extern void * (OPENGL_CALLING_CONVENTION * glMapBufferFn) (GLenum target, GLenum access);
|
||||
extern GLboolean (OPENGL_CALLING_CONVENTION * glUnmapBufferFn) (GLenum target);
|
||||
|
||||
// framebuffers extensions
|
||||
|
||||
|
@ -72,20 +83,20 @@ namespace yg
|
|||
extern const int GL_DEPTH_COMPONENT24_MWM;
|
||||
extern const int GL_RGBA8_MWM;
|
||||
|
||||
extern void (* glBindFramebufferFn) (GLenum target, GLuint framebuffer);
|
||||
extern void (* glFramebufferTexture2DFn) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
extern void (* glFramebufferRenderbufferFn) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
extern void (* glGenFramebuffersFn) (GLsizei n, GLuint *framebuffers);
|
||||
extern void (* glDeleteFramebuffersFn) (GLsizei n, const GLuint *framebuffers);
|
||||
extern GLenum (* glCheckFramebufferStatusFn) (GLenum target);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glBindFramebufferFn) (GLenum target, GLuint framebuffer);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glFramebufferTexture2DFn) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glFramebufferRenderbufferFn) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glGenFramebuffersFn) (GLsizei n, GLuint *framebuffers);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glDeleteFramebuffersFn) (GLsizei n, const GLuint *framebuffers);
|
||||
extern GLenum (OPENGL_CALLING_CONVENTION * glCheckFramebufferStatusFn) (GLenum target);
|
||||
|
||||
// renderbuffer extensions
|
||||
|
||||
|
||||
extern void (* glGenRenderbuffersFn) (GLsizei n, GLuint *renderbuffers);
|
||||
extern void (* glDeleteRenderbuffersFn) (GLsizei n, const GLuint *renderbuffers);
|
||||
extern void (* glBindRenderbufferFn) (GLenum target, GLuint renderbuffer);
|
||||
extern void (* glRenderbufferStorageFn) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glGenRenderbuffersFn) (GLsizei n, GLuint *renderbuffers);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glDeleteRenderbuffersFn) (GLsizei n, const GLuint *renderbuffers);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glBindRenderbufferFn) (GLenum target, GLuint renderbuffer);
|
||||
extern void (OPENGL_CALLING_CONVENTION * glRenderbufferStorageFn) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
|
||||
/// This flag controls, whether OpenGL resources should delete themselves upon destruction.
|
||||
/// Sounds odd, but in EGL there are cases when the only function one should call to finish
|
||||
|
|
|
@ -1,32 +1,10 @@
|
|||
#include "opengl.hpp"
|
||||
|
||||
#ifdef OMIM_OS_MAC
|
||||
#include <TargetConditionals.h>
|
||||
#include <OpenGL/glext.h>
|
||||
#endif
|
||||
|
||||
namespace yg
|
||||
{
|
||||
namespace gl
|
||||
{
|
||||
const int GL_FRAMEBUFFER_BINDING_MWM = GL_FRAMEBUFFER_BINDING_EXT;
|
||||
const int GL_FRAMEBUFFER_MWM = GL_FRAMEBUFFER_EXT;
|
||||
const int GL_FRAMEBUFFER_UNSUPPORTED_MWM = GL_FRAMEBUFFER_UNSUPPORTED_EXT;
|
||||
const int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_MWM = GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT;
|
||||
const int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_MWM = GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT;
|
||||
const int GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_MWM = GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT;
|
||||
const int GL_FRAMEBUFFER_COMPLETE_MWM = GL_FRAMEBUFFER_COMPLETE_EXT;
|
||||
|
||||
const int GL_DEPTH_ATTACHMENT_MWM = GL_DEPTH_ATTACHMENT_EXT;
|
||||
const int GL_COLOR_ATTACHMENT0_MWM = GL_COLOR_ATTACHMENT0_EXT;
|
||||
const int GL_RENDERBUFFER_MWM = GL_RENDERBUFFER_EXT;
|
||||
const int GL_RENDERBUFFER_BINDING_MWM = GL_RENDERBUFFER_BINDING_EXT;
|
||||
const int GL_DEPTH_COMPONENT16_MWM = GL_DEPTH_COMPONENT16;
|
||||
const int GL_DEPTH_COMPONENT24_MWM = GL_DEPTH_COMPONENT24;
|
||||
const int GL_RGBA8_MWM = GL_RGBA8;
|
||||
|
||||
const int GL_WRITE_ONLY_MWM = GL_WRITE_ONLY;
|
||||
|
||||
void InitExtensions()
|
||||
{
|
||||
DumpGLInformation();
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
#include "opengl.hpp"
|
||||
|
||||
#include "../../3party/GL/glext.h"
|
||||
//#include "../../3party/GL/glext.h"
|
||||
|
||||
#include "../../base/logging.hpp"
|
||||
|
||||
|
||||
namespace yg
|
||||
{
|
||||
namespace gl
|
||||
{
|
||||
GL_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING_EXT;
|
||||
//GL_FRAMEBUFFER_BINDING = GL_FRAMEBUFFER_BINDING_EXT;
|
||||
|
||||
template <class TRet>
|
||||
TRet GetGLProc(HMODULE, char const * name)
|
||||
template <class T>
|
||||
void AssignGLProc(HMODULE, char const * name, T & res)
|
||||
{
|
||||
PROC p = ::wglGetProcAddress(name);
|
||||
if (p == 0)
|
||||
|
@ -19,7 +20,7 @@ namespace yg
|
|||
DWORD const err = ::GetLastError();
|
||||
LOG(LINFO, ("OpenGL extension function ", name, " not found. Last error = ", err));
|
||||
}
|
||||
return reinterpret_cast<TRet>(p);
|
||||
res = reinterpret_cast<T>(p);
|
||||
}
|
||||
|
||||
void InitExtensions()
|
||||
|
@ -28,12 +29,12 @@ namespace yg
|
|||
|
||||
// Loading procedures, trying "EXT" suffix if alias doesn't exist
|
||||
|
||||
#define DEFINE_GL_PROC_WIN32(type, name, fn) \
|
||||
fn = GetGLProc<type>(hInst, name); \
|
||||
if (fn == NULL)
|
||||
{
|
||||
string extName = string(name) + "EXT";
|
||||
fn = GetGLProc<type>(hInst, extName);
|
||||
#define DEFINE_GL_PROC(name, fn) \
|
||||
AssignGLProc(hInst, name, fn); \
|
||||
if (fn == NULL) \
|
||||
{ \
|
||||
string const extName = string(name) + "EXT"; \
|
||||
AssignGLProc(hInst, extName.c_str(), fn); \
|
||||
}
|
||||
#include "gl_procedures.inl"
|
||||
#undef DEFINE_GL_PROC
|
||||
|
@ -60,5 +61,3 @@ namespace yg
|
|||
}
|
||||
}
|
||||
} // namespace win32
|
||||
|
||||
#endif
|
||||
|
|
|
@ -111,7 +111,7 @@ namespace yg
|
|||
shared_ptr<UpdateActualTarget> command(new UpdateActualTarget());
|
||||
command->m_renderState = m_renderState;
|
||||
command->m_currentScreen = m_renderState->m_currentScreen;
|
||||
command->m_doSynchronize = renderQueue();
|
||||
command->m_doSynchronize = (renderQueue() != 0);
|
||||
|
||||
processCommand(command);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue