Apply patch to fix OSX compilation

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14591 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria 2013-12-01 16:51:08 +00:00
parent 5899a26aad
commit 8cf0030a27
5 changed files with 2848 additions and 2848 deletions

View File

@ -1,7 +1,7 @@
varying vec4 offset[2]; varying vec4 offset[2];
uniform sampler2D colorMapG; uniform sampler2D colorMapG;
const float threshold = 0.1f; const float threshold = 0.1;
void main() { void main() {
vec3 weights = vec3(0.2126,0.7152, 0.0722); // ITU-R BT. 709 vec3 weights = vec3(0.2126,0.7152, 0.0722); // ITU-R BT. 709

View File

@ -3,7 +3,7 @@
uniform float speed; uniform float speed;
uniform float height; uniform float height;
uniform float length; uniform float waveLength;
uniform vec3 lightdir; uniform vec3 lightdir;
@ -15,7 +15,7 @@ void main()
{ {
vec4 pos = gl_Vertex; vec4 pos = gl_Vertex;
pos.y += (sin(pos.x/length + speed) + cos(pos.z/length + speed)) * height; pos.y += (sin(pos.x/waveLength + speed) + cos(pos.z/waveLength + speed)) * height;
vec3 vertexPosition = vec3(gl_ModelViewMatrix * pos); vec3 vertexPosition = vec3(gl_ModelViewMatrix * pos);

File diff suppressed because it is too large Load Diff

View File

@ -1,253 +1,253 @@
// Copyright (C) 2005-2006 Etienne Petitjean // Copyright (C) 2005-2006 Etienne Petitjean
// Copyright (C) 2007-2012 Christian Stehno // Copyright (C) 2007-2012 Christian Stehno
// This file is part of the "Irrlicht Engine". // This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in Irrlicht.h // For conditions of distribution and use, see copyright notice in Irrlicht.h
#ifndef __C_IRR_DEVICE_MACOSX_H_INCLUDED__ #ifndef __C_IRR_DEVICE_MACOSX_H_INCLUDED__
#define __C_IRR_DEVICE_MACOSX_H_INCLUDED__ #define __C_IRR_DEVICE_MACOSX_H_INCLUDED__
#include "IrrCompileConfig.h" #include "IrrCompileConfig.h"
#ifdef _IRR_COMPILE_WITH_OSX_DEVICE_ #ifdef _IRR_COMPILE_WITH_OSX_DEVICE_
#include "CIrrDeviceStub.h" #include "../CIrrDeviceStub.h"
#include "IrrlichtDevice.h" #include "IrrlichtDevice.h"
#include "IImagePresenter.h" #include "../IImagePresenter.h"
#include "IGUIEnvironment.h" #include "IGUIEnvironment.h"
#include "ICursorControl.h" #include "ICursorControl.h"
#include <OpenGL/OpenGL.h> #include <OpenGL/OpenGL.h>
#include <map> #include <map>
#ifndef __OBJC__ #ifndef __OBJC__
class NSWindow; class NSWindow;
class NSOpenGLContext; class NSOpenGLContext;
class NSBitmapImageRep; class NSBitmapImageRep;
#endif #endif
namespace irr namespace irr
{ {
class CIrrDeviceMacOSX : public CIrrDeviceStub, video::IImagePresenter class CIrrDeviceMacOSX : public CIrrDeviceStub, video::IImagePresenter
{ {
public: public:
//! constructor //! constructor
CIrrDeviceMacOSX(const SIrrlichtCreationParameters& params); CIrrDeviceMacOSX(const SIrrlichtCreationParameters& params);
//! destructor //! destructor
virtual ~CIrrDeviceMacOSX(); virtual ~CIrrDeviceMacOSX();
//! runs the device. Returns false if device wants to be deleted //! runs the device. Returns false if device wants to be deleted
virtual bool run(); virtual bool run();
//! Cause the device to temporarily pause execution and let other processes to run //! Cause the device to temporarily pause execution and let other processes to run
// This should bring down processor usage without major performance loss for Irrlicht // This should bring down processor usage without major performance loss for Irrlicht
virtual void yield(); virtual void yield();
//! Pause execution and let other processes to run for a specified amount of time. //! Pause execution and let other processes to run for a specified amount of time.
virtual void sleep(u32 timeMs, bool pauseTimer); virtual void sleep(u32 timeMs, bool pauseTimer);
//! sets the caption of the window //! sets the caption of the window
virtual void setWindowCaption(const wchar_t* text); virtual void setWindowCaption(const wchar_t* text);
//! returns if window is active. if not, nothing need to be drawn //! returns if window is active. if not, nothing need to be drawn
virtual bool isWindowActive() const; virtual bool isWindowActive() const;
//! Checks if the Irrlicht window has focus //! Checks if the Irrlicht window has focus
virtual bool isWindowFocused() const; virtual bool isWindowFocused() const;
//! Checks if the Irrlicht window is minimized //! Checks if the Irrlicht window is minimized
virtual bool isWindowMinimized() const; virtual bool isWindowMinimized() const;
//! presents a surface in the client area //! presents a surface in the client area
virtual bool present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0 ); virtual bool present(video::IImage* surface, void* windowId=0, core::rect<s32>* src=0 );
//! notifies the device that it should close itself //! notifies the device that it should close itself
virtual void closeDevice(); virtual void closeDevice();
//! Sets if the window should be resizable in windowed mode. //! Sets if the window should be resizable in windowed mode.
virtual void setResizable(bool resize); virtual void setResizable(bool resize);
//! Returns true if the window is resizable, false if not //! Returns true if the window is resizable, false if not
virtual bool isResizable() const; virtual bool isResizable() const;
//! Minimizes the window if possible //! Minimizes the window if possible
virtual void minimizeWindow(); virtual void minimizeWindow();
//! Maximizes the window if possible. //! Maximizes the window if possible.
virtual void maximizeWindow(); virtual void maximizeWindow();
//! Restore the window to normal size if possible. //! Restore the window to normal size if possible.
virtual void restoreWindow(); virtual void restoreWindow();
//! Activate any joysticks, and generate events for them. //! Activate any joysticks, and generate events for them.
virtual bool activateJoysticks(core::array<SJoystickInfo> & joystickInfo); virtual bool activateJoysticks(core::array<SJoystickInfo> & joystickInfo);
//! \return Returns a pointer to a list with all video modes //! \return Returns a pointer to a list with all video modes
//! supported by the gfx adapter. //! supported by the gfx adapter.
virtual video::IVideoModeList* getVideoModeList(); virtual video::IVideoModeList* getVideoModeList();
//! Get the device type //! Get the device type
virtual E_DEVICE_TYPE getType() const virtual E_DEVICE_TYPE getType() const
{ {
return EIDT_OSX; return EIDT_OSX;
} }
void flush(); void flush();
void setMouseLocation(int x, int y); void setMouseLocation(int x, int y);
void setResize(int width, int height); void setResize(int width, int height);
void setCursorVisible(bool visible); void setCursorVisible(bool visible);
private: private:
//! create the driver //! create the driver
void createDriver(); void createDriver();
//! Implementation of the macos x cursor control //! Implementation of the macos x cursor control
class CCursorControl : public gui::ICursorControl class CCursorControl : public gui::ICursorControl
{ {
public: public:
CCursorControl(const core::dimension2d<u32>& wsize, CIrrDeviceMacOSX *device) CCursorControl(const core::dimension2d<u32>& wsize, CIrrDeviceMacOSX *device)
: WindowSize(wsize), IsVisible(true), InvWindowSize(0.0f, 0.0f), Device(device), UseReferenceRect(false) : WindowSize(wsize), IsVisible(true), InvWindowSize(0.0f, 0.0f), Device(device), UseReferenceRect(false)
{ {
CursorPos.X = CursorPos.Y = 0; CursorPos.X = CursorPos.Y = 0;
if (WindowSize.Width!=0) if (WindowSize.Width!=0)
InvWindowSize.Width = 1.0f / WindowSize.Width; InvWindowSize.Width = 1.0f / WindowSize.Width;
if (WindowSize.Height!=0) if (WindowSize.Height!=0)
InvWindowSize.Height = 1.0f / WindowSize.Height; InvWindowSize.Height = 1.0f / WindowSize.Height;
} }
//! Changes the visible state of the mouse cursor. //! Changes the visible state of the mouse cursor.
virtual void setVisible(bool visible) virtual void setVisible(bool visible)
{ {
IsVisible = visible; IsVisible = visible;
Device->setCursorVisible(visible); Device->setCursorVisible(visible);
} }
//! Returns if the cursor is currently visible. //! Returns if the cursor is currently visible.
virtual bool isVisible() const virtual bool isVisible() const
{ {
return IsVisible; return IsVisible;
} }
//! Sets the new position of the cursor. //! Sets the new position of the cursor.
virtual void setPosition(const core::position2d<f32> &pos) virtual void setPosition(const core::position2d<f32> &pos)
{ {
setPosition(pos.X, pos.Y); setPosition(pos.X, pos.Y);
} }
//! Sets the new position of the cursor. //! Sets the new position of the cursor.
virtual void setPosition(f32 x, f32 y) virtual void setPosition(f32 x, f32 y)
{ {
setPosition((s32)(x*WindowSize.Width), (s32)(y*WindowSize.Height)); setPosition((s32)(x*WindowSize.Width), (s32)(y*WindowSize.Height));
} }
//! Sets the new position of the cursor. //! Sets the new position of the cursor.
virtual void setPosition(const core::position2d<s32> &pos) virtual void setPosition(const core::position2d<s32> &pos)
{ {
if (CursorPos.X != pos.X || CursorPos.Y != pos.Y) if (CursorPos.X != pos.X || CursorPos.Y != pos.Y)
setPosition(pos.X, pos.Y); setPosition(pos.X, pos.Y);
} }
//! Sets the new position of the cursor. //! Sets the new position of the cursor.
virtual void setPosition(s32 x, s32 y) virtual void setPosition(s32 x, s32 y)
{ {
if (UseReferenceRect) if (UseReferenceRect)
{ {
Device->setMouseLocation(ReferenceRect.UpperLeftCorner.X + x, ReferenceRect.UpperLeftCorner.Y + y); Device->setMouseLocation(ReferenceRect.UpperLeftCorner.X + x, ReferenceRect.UpperLeftCorner.Y + y);
} }
else else
{ {
Device->setMouseLocation(x,y); Device->setMouseLocation(x,y);
} }
} }
//! Returns the current position of the mouse cursor. //! Returns the current position of the mouse cursor.
virtual const core::position2d<s32>& getPosition() virtual const core::position2d<s32>& getPosition()
{ {
return CursorPos; return CursorPos;
} }
//! Returns the current position of the mouse cursor. //! Returns the current position of the mouse cursor.
virtual core::position2d<f32> getRelativePosition() virtual core::position2d<f32> getRelativePosition()
{ {
if (!UseReferenceRect) if (!UseReferenceRect)
{ {
return core::position2d<f32>(CursorPos.X * InvWindowSize.Width, return core::position2d<f32>(CursorPos.X * InvWindowSize.Width,
CursorPos.Y * InvWindowSize.Height); CursorPos.Y * InvWindowSize.Height);
} }
return core::position2d<f32>(CursorPos.X / (f32)ReferenceRect.getWidth(), return core::position2d<f32>(CursorPos.X / (f32)ReferenceRect.getWidth(),
CursorPos.Y / (f32)ReferenceRect.getHeight()); CursorPos.Y / (f32)ReferenceRect.getHeight());
} }
//! Sets an absolute reference rect for calculating the cursor position. //! Sets an absolute reference rect for calculating the cursor position.
virtual void setReferenceRect(core::rect<s32>* rect=0) virtual void setReferenceRect(core::rect<s32>* rect=0)
{ {
if (rect) if (rect)
{ {
ReferenceRect = *rect; ReferenceRect = *rect;
UseReferenceRect = true; UseReferenceRect = true;
// prevent division through zero and uneven sizes // prevent division through zero and uneven sizes
if (!ReferenceRect.getHeight() || ReferenceRect.getHeight()%2) if (!ReferenceRect.getHeight() || ReferenceRect.getHeight()%2)
ReferenceRect.LowerRightCorner.Y += 1; ReferenceRect.LowerRightCorner.Y += 1;
if (!ReferenceRect.getWidth() || ReferenceRect.getWidth()%2) if (!ReferenceRect.getWidth() || ReferenceRect.getWidth()%2)
ReferenceRect.LowerRightCorner.X += 1; ReferenceRect.LowerRightCorner.X += 1;
} }
else else
UseReferenceRect = false; UseReferenceRect = false;
} }
//! Updates the internal cursor position //! Updates the internal cursor position
void updateInternalCursorPosition(int x,int y) void updateInternalCursorPosition(int x,int y)
{ {
CursorPos.X = x; CursorPos.X = x;
CursorPos.Y = y; CursorPos.Y = y;
} }
private: private:
core::position2d<s32> CursorPos; core::position2d<s32> CursorPos;
core::dimension2d<s32> WindowSize; core::dimension2d<s32> WindowSize;
core::dimension2d<float> InvWindowSize; core::dimension2d<float> InvWindowSize;
core::rect<s32> ReferenceRect; core::rect<s32> ReferenceRect;
CIrrDeviceMacOSX *Device; CIrrDeviceMacOSX *Device;
bool IsVisible; bool IsVisible;
bool UseReferenceRect; bool UseReferenceRect;
}; };
bool createWindow(); bool createWindow();
void initKeycodes(); void initKeycodes();
void storeMouseLocation(); void storeMouseLocation();
void postMouseEvent(void *event, irr::SEvent &ievent); void postMouseEvent(void *event, irr::SEvent &ievent);
void postKeyEvent(void *event, irr::SEvent &ievent, bool pressed); void postKeyEvent(void *event, irr::SEvent &ievent, bool pressed);
void pollJoysticks(); void pollJoysticks();
NSWindow *Window; NSWindow *Window;
CGLContextObj CGLContext; CGLContextObj CGLContext;
NSOpenGLContext *OGLContext; NSOpenGLContext *OGLContext;
NSBitmapImageRep *SoftwareDriverTarget; NSBitmapImageRep *SoftwareDriverTarget;
std::map<int,int> KeyCodes; std::map<int,int> KeyCodes;
int DeviceWidth; int DeviceWidth;
int DeviceHeight; int DeviceHeight;
int ScreenWidth; int ScreenWidth;
int ScreenHeight; int ScreenHeight;
u32 MouseButtonStates; u32 MouseButtonStates;
u32 SoftwareRendererType; u32 SoftwareRendererType;
bool IsFullscreen; bool IsFullscreen;
bool IsActive; bool IsActive;
bool IsShiftDown; bool IsShiftDown;
bool IsControlDown; bool IsControlDown;
bool IsResizable; bool IsResizable;
}; };
} // end namespace irr } // end namespace irr
#endif // _IRR_COMPILE_WITH_OSX_DEVICE_ #endif // _IRR_COMPILE_WITH_OSX_DEVICE_
#endif // __C_IRR_DEVICE_MACOSX_H_INCLUDED__ #endif // __C_IRR_DEVICE_MACOSX_H_INCLUDED__

View File

@ -85,7 +85,7 @@ void WaterShaderProvider::OnSetConstants(IMaterialRendererServices *srv, int)
srv->setVertexShaderConstant("height", &height, 1); srv->setVertexShaderConstant("height", &height, 1);
srv->setVertexShaderConstant("speed", &speed, 1); srv->setVertexShaderConstant("speed", &speed, 1);
srv->setVertexShaderConstant("length", &m_length, 1); srv->setVertexShaderConstant("waveLength", &m_length, 1);
// Can't use the firstdone optimization, as the callback is shared // Can't use the firstdone optimization, as the callback is shared
//if (!firstdone) //if (!firstdone)