Ejemplo n.º 1
0
//----------------------------------------------------------------//
void MOAIGlyph::SerializeIn ( MOAILuaState& state ) {

    this->mCode			= state.GetField ( -1, "mCode", this->mCode );
    this->mPageID		= state.GetField ( -1, "mPageID", this->mPageID );

    this->mWidth		= state.GetField ( -1, "mWidth", this->mWidth );
    this->mHeight		= state.GetField ( -1, "mHeight", this->mHeight );
    this->mAdvanceX		= state.GetField ( -1, "mAdvanceX", this->mAdvanceX );
    this->mBearingX		= state.GetField ( -1, "mBearingX", this->mBearingX );
    this->mBearingY		= state.GetField ( -1, "mBearingY", this->mBearingY );

    this->mSrcX			= state.GetField ( -1, "mSrcX", this->mSrcX );
    this->mSrcY			= state.GetField ( -1, "mSrcY", this->mSrcY );

    if ( state.GetFieldWithType ( -1, "mKernTable", LUA_TTABLE )) {

        u32 size = lua_objlen ( state, -1 );
        this->mKernTable.Init ( size );

        for ( u32 i = 0; i < size; ++i ) {

            if ( state.GetFieldWithType ( -1, i + 1, LUA_TTABLE )) {

                this->mKernTable [ i ].mName = state.GetField ( -1, "mName", 0 );
                this->mKernTable [ i ].mX = state.GetField ( -1, "mX", 0.0f );
                this->mKernTable [ i ].mY = state.GetField ( -1, "mY", 0.0f );
            }
            state.Pop ( 1 );
        }
        state.Pop ( 1 );
    }
}
Ejemplo n.º 2
0
//----------------------------------------------------------------//
void MOAIGlyphSet::SerializeIn ( MOAILuaState& state ) {
	UNUSED ( state );
	
	this->mSize		= state.GetField ( -1, "mSize", this->mSize );
	this->mHeight	= state.GetField ( -1, "mHeight", this->mHeight );
	this->mAscent	= state.GetField ( -1, "mAscent", this->mAscent );

	if ( state.GetFieldWithType ( -1, "mGlyphMap", LUA_TTABLE )) {

		u32 itr = state.PushTableItr ( -1 );
		while ( state.TableItrNext ( itr )) {
			u32 c = state.GetValue < u32 >( -2, 0 );
			MOAIGlyph& glyph = this->mGlyphMap [ c ];
			glyph.SerializeIn ( state );
		}
		state.Pop ( 1 );
	}
	
	GlyphMapIt glyphMapIt = this->mGlyphMap.begin ();
	for ( ; glyphMapIt != this->mGlyphMap.end (); ++glyphMapIt ) {
		MOAIGlyph& glyph = glyphMapIt->second;
		
		if ( glyph.mPageID == MOAIGlyph::NULL_PAGE_ID ) {
			glyph.mNext = this->mPending;
			this->mPending = &glyph;
		}
		else {
			glyph.mNext = this->mGlyphs;
			this->mGlyphs = &glyph;
		}
	}
}
Ejemplo n.º 3
0
//----------------------------------------------------------------//
void MOAIMesh::SerializeIn ( MOAILuaState& state, MOAIDeserializer& serializer ) {

	MOAIVertexArray::SerializeIn ( state, serializer );

	this->SetIndexBuffer ( serializer.MemberIDToObject < MOAIIndexBuffer >( state.GetField < MOAISerializer::ObjID >( -1, "mIndexBuffer", 0 )));
	
	this->mTotalElements = state.GetField < u32 >( -1, "mTotalElements", 0 );
	
	this->mHasBounds = state.GetField < bool >( -1, "mHasBounds", 0 );
	
	if ( state.GetFieldWithType ( -1, "mBounds", LUA_TTABLE )) {
		
		this->mBounds.mMin.mX	= state.GetField < float >( -1, "mMinX", 0 );
		this->mBounds.mMin.mY	= state.GetField < float >( -1, "mMinY", 0 );
		this->mBounds.mMin.mZ	= state.GetField < float >( -1, "mMinZ", 0 );
		
		this->mBounds.mMax.mX	= state.GetField < float >( -1, "mMaxX", 0 );
		this->mBounds.mMax.mY	= state.GetField < float >( -1, "mMaxY", 0 );
		this->mBounds.mMax.mZ	= state.GetField < float >( -1, "mMaxZ", 0 );
		
		state.Pop ();
	}
	
	this->mPenWidth = state.GetField < float >( -1, "mPenWidth", 0 );
}