Added __screen__ special texture name. Added AMV:GetTexture, RageTexture:Reload, and Screen:SetNextScreenName lua functions.
This commit is contained in:
@@ -490,6 +490,7 @@
|
||||
<Function name='GetDestFirstToDraw'/>
|
||||
<Function name='GetDestNumToDraw'/>
|
||||
<Function name='GetNumVertices'/>
|
||||
<Function name='GetTexture'/>
|
||||
<Function name='LoadTexture'/>
|
||||
<Function name='SetDrawState'/>
|
||||
<Function name='SetEffectMode'/>
|
||||
@@ -1297,6 +1298,7 @@
|
||||
<Function name='loop'/>
|
||||
<Function name='position'/>
|
||||
<Function name='rate'/>
|
||||
<Function name='Reload'/>
|
||||
</Class>
|
||||
<Class base='RageTexture' name='RageTextureRenderTarget'>
|
||||
<Function name='BeginRenderingTo'/>
|
||||
@@ -1316,6 +1318,7 @@
|
||||
<Function name='Metric'/>
|
||||
<Function name='PostScreenMessage'/>
|
||||
<Function name='RemoveInputCallback'/>
|
||||
<Function name='SetNextScreenName'/>
|
||||
<Function name='String'/>
|
||||
<Function name='lockinput'/>
|
||||
</Class>
|
||||
|
||||
@@ -1538,6 +1538,9 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='GetCurrNumToDraw' return='int' arguments='void'>
|
||||
Get the NumToDraw of the current tween state.
|
||||
</Function>
|
||||
<Function name='GetTexture' return='RageTexture' arguments=''>
|
||||
Returns the ActorMultiVertex's texture.
|
||||
</Function>
|
||||
<Function name='SetEffectMode' return='void' arguments='EffectMode em'>
|
||||
Sets the <Link class='ENUM' function='EffectMode'>EffectMode</Link> of the ActorMultiVertex.
|
||||
</Function>
|
||||
@@ -3724,6 +3727,9 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='rate' return='void' arguments='float fRate'>
|
||||
Sets the animation or movie playback rate to <code>fRate</code>.
|
||||
</Function>
|
||||
<Function name='Reload' return='void' arguments=''>
|
||||
Reloads the texture.
|
||||
</Function>
|
||||
</Class>
|
||||
<Class name='RollingNumbers'>
|
||||
<Function name='Load' return='void' arguments='string sGroupName'>
|
||||
@@ -3779,6 +3785,9 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='RemoveInputCallback' return='void' arguments='function callback'>
|
||||
This removes the callback from the list.
|
||||
</Function>
|
||||
<Function name='SetNextScreenName' return='void' arguments='string name'>
|
||||
Sets the NextScreen value to name.
|
||||
</Function>
|
||||
<Function name='String' theme='_fallback' return='string' arguments='string sName'>
|
||||
[02 Other.lua] Gets a string from the current Screen in the current language.
|
||||
</Function>
|
||||
|
||||
@@ -645,6 +645,19 @@ public:
|
||||
p->SetTexture( Texture );
|
||||
return 0;
|
||||
}
|
||||
static int GetTexture(T* p, lua_State *L)
|
||||
{
|
||||
RageTexture *texture = p->GetTexture();
|
||||
if(texture != NULL)
|
||||
{
|
||||
texture->PushSelf(L);
|
||||
}
|
||||
else
|
||||
{
|
||||
lua_pushnil(L);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
LunaActorMultiVertex()
|
||||
{
|
||||
@@ -668,6 +681,7 @@ public:
|
||||
|
||||
// Copy from RageTexture
|
||||
ADD_METHOD( SetTexture );
|
||||
ADD_METHOD( GetTexture );
|
||||
// Load from file path
|
||||
ADD_METHOD( LoadTexture );
|
||||
}
|
||||
|
||||
@@ -75,6 +75,7 @@ public:
|
||||
void FinishTweening();
|
||||
|
||||
void SetTexture( RageTexture *Texture );
|
||||
RageTexture* GetTexture() { return _Texture; };
|
||||
void LoadFromTexture( RageTextureID ID );
|
||||
|
||||
void UnloadTexture();
|
||||
|
||||
@@ -65,7 +65,15 @@ void RageBitmapTexture::Create()
|
||||
|
||||
/* Load the image into a RageSurface. */
|
||||
RString error;
|
||||
RageSurface *pImg = RageSurfaceUtils::LoadFile( actualID.filename, error );
|
||||
RageSurface *pImg= NULL;
|
||||
if(actualID.filename == TEXTUREMAN->GetScreenTextureID().filename)
|
||||
{
|
||||
pImg= TEXTUREMAN->GetScreenSurface();
|
||||
}
|
||||
else
|
||||
{
|
||||
pImg= RageSurfaceUtils::LoadFile(actualID.filename, error);
|
||||
}
|
||||
|
||||
/* Tolerate corrupt/unknown images. */
|
||||
if( pImg == NULL )
|
||||
@@ -122,7 +130,7 @@ void RageBitmapTexture::Create()
|
||||
m_iSourceWidth = pImg->w;
|
||||
m_iSourceHeight = pImg->h;
|
||||
|
||||
/* in-game imsage dimensions are the same as the source graphic */
|
||||
/* in-game image dimensions are the same as the source graphic */
|
||||
m_iImageWidth = m_iSourceWidth;
|
||||
m_iImageHeight = m_iSourceHeight;
|
||||
|
||||
|
||||
@@ -84,6 +84,11 @@ public:
|
||||
lua_pushnumber(L, p->GetNumFrames());
|
||||
return 1;
|
||||
}
|
||||
static int Reload(T* p, lua_State* L)
|
||||
{
|
||||
p->Reload();
|
||||
return 0;
|
||||
}
|
||||
|
||||
LunaRageTexture()
|
||||
{
|
||||
@@ -92,6 +97,7 @@ public:
|
||||
ADD_METHOD( rate );
|
||||
ADD_METHOD( GetTextureCoordRect );
|
||||
ADD_METHOD( GetNumFrames );
|
||||
ADD_METHOD( Reload );
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -100,6 +100,17 @@ RageTextureID RageTextureManager::GetDefaultTextureID()
|
||||
return RageTextureID( g_sDefaultTextureName );
|
||||
}
|
||||
|
||||
static const RString g_ScreenTextureName = "__screen__";
|
||||
RageTextureID RageTextureManager::GetScreenTextureID()
|
||||
{
|
||||
return RageTextureID(g_ScreenTextureName);
|
||||
}
|
||||
|
||||
RageSurface* RageTextureManager::GetScreenSurface()
|
||||
{
|
||||
return DISPLAY->CreateScreenshot();
|
||||
}
|
||||
|
||||
class RageTexture_Default: public RageTexture
|
||||
{
|
||||
public:
|
||||
@@ -141,11 +152,19 @@ RageTexture* RageTextureManager::LoadTextureInternal( RageTextureID ID )
|
||||
|
||||
RageTexture* pTexture;
|
||||
if( ID.filename == g_sDefaultTextureName )
|
||||
{
|
||||
pTexture = new RageTexture_Default;
|
||||
else if( sExt == "ogv" || sExt == "avi" || sExt == "mpg" || sExt == "mpeg" || sExt == "mp4" || sExt == "mkv" || sExt == "mov" || sExt == "flv" || sExt == "f4v")
|
||||
}
|
||||
else if(sExt == "ogv" || sExt == "avi" || sExt == "mpg" ||
|
||||
sExt == "mpeg" || sExt == "mp4" || sExt == "mkv" || sExt == "mov" ||
|
||||
sExt == "flv" || sExt == "f4v")
|
||||
{
|
||||
pTexture = RageMovieTexture::Create( ID );
|
||||
}
|
||||
else
|
||||
{
|
||||
pTexture = new RageBitmapTexture( ID );
|
||||
}
|
||||
|
||||
m_mapPathToTexture[ID] = pTexture;
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#define RAGE_TEXTURE_MANAGER_H
|
||||
|
||||
#include "RageTexture.h"
|
||||
#include "RageSurface.h"
|
||||
|
||||
struct RageTextureManagerPrefs
|
||||
{
|
||||
@@ -81,6 +82,8 @@ public:
|
||||
bool GetOddDimensionWarning() const { return m_iNoWarnAboutOddDimensions == 0; }
|
||||
|
||||
RageTextureID GetDefaultTextureID();
|
||||
RageTextureID GetScreenTextureID();
|
||||
RageSurface* GetScreenSurface();
|
||||
|
||||
private:
|
||||
void DeleteTexture( RageTexture *t );
|
||||
|
||||
@@ -268,6 +268,11 @@ RString Screen::GetNextScreenName() const
|
||||
return NEXT_SCREEN;
|
||||
}
|
||||
|
||||
void Screen::SetNextScreenName(RString const& name)
|
||||
{
|
||||
m_sNextScreen= name;
|
||||
}
|
||||
|
||||
RString Screen::GetPrevScreen() const
|
||||
{
|
||||
if( !m_sPrevScreen.empty() )
|
||||
@@ -403,6 +408,7 @@ class LunaScreen: public Luna<Screen>
|
||||
{
|
||||
public:
|
||||
static int GetNextScreenName( T* p, lua_State *L ) { lua_pushstring(L, p->GetNextScreenName() ); return 1; }
|
||||
static int SetNextScreenName( T* p, lua_State *L ) { p->SetNextScreenName(SArg(1)); return 0; }
|
||||
static int GetPrevScreenName( T* p, lua_State *L ) { lua_pushstring(L, p->GetPrevScreen() ); return 1; }
|
||||
static int lockinput( T* p, lua_State *L ) { p->SetLockInputSecs(FArg(1)); return 0; }
|
||||
DEFINE_METHOD( GetScreenType, GetScreenType() )
|
||||
@@ -438,6 +444,7 @@ public:
|
||||
LunaScreen()
|
||||
{
|
||||
ADD_METHOD( GetNextScreenName );
|
||||
ADD_METHOD( SetNextScreenName );
|
||||
ADD_METHOD( GetPrevScreenName );
|
||||
ADD_METHOD( PostScreenMessage );
|
||||
ADD_METHOD( lockinput );
|
||||
|
||||
@@ -123,6 +123,7 @@ protected:
|
||||
public:
|
||||
RString GetNextScreenName() const;
|
||||
RString GetPrevScreen() const;
|
||||
void SetNextScreenName(RString const& name);
|
||||
|
||||
bool PassInputToLua(const InputEventPlus& input);
|
||||
void AddInputCallbackFromStack(lua_State* L);
|
||||
|
||||
Reference in New Issue
Block a user