コード例 #1
0
    //---------------------------------------------------------------------
    void Writer::writeInts(const uint32* pInt, size_t count)
    {
#	if OGRE_ENDIAN == OGRE_ENDIAN_BIG
            uint32 * pIntToWrite = (uint32 *)malloc(sizeof(uint32) * count);
            memcpy(pIntToWrite, pInt, sizeof(uint32) * count);

            flipToLittleEndian(pIntToWrite, sizeof(uint32), count);
            _write(pIntToWrite, sizeof(uint32), count);

            free(pIntToWrite);
# 	else
            _write(pInt, sizeof(uint32), count);
#	endif
    }
コード例 #2
0
    //---------------------------------------------------------------------
    void Writer::writeShorts(const uint16* pShort, size_t count)
    {
#	if OGRE_ENDIAN == OGRE_ENDIAN_BIG
            uint16 * pShortToWrite = (uint16 *)malloc(sizeof(uint16) * count);
            memcpy(pShortToWrite, pShort, sizeof(uint16) * count);

            flipToLittleEndian(pShortToWrite, sizeof(uint16), count);
            _write(pShortToWrite, sizeof(uint16), count);

            free(pShortToWrite);
# 	else
            _write(pShort, sizeof(uint16), count);
#	endif
    }
コード例 #3
0
    //---------------------------------------------------------------------
    void Writer::writeFloats(const float* pFloat, size_t count)
    {
#	if OGRE_ENDIAN == OGRE_ENDIAN_BIG
            float * pFloatToWrite = (float *)malloc(sizeof(float) * count);
            memcpy(pFloatToWrite, pFloat, sizeof(float) * count);

            flipToLittleEndian(pFloatToWrite, sizeof(float), count);
            _write(pFloatToWrite, sizeof(float), count);

            free(pFloatToWrite);
# 	else
            _write(pFloat, sizeof(float), count);
#	endif
    }
コード例 #4
0
    //---------------------------------------------------------------------
    void Writer::writeFloats(const double* pDouble, size_t count)
    {
		// Convert to float, then write
		float* tmp = new float[count];
		for (size_t i = 0; i < count; ++i)
		{
			tmp[i] = static_cast<float>(pDouble[i]);
		}
#	if OGRE_ENDIAN == OGRE_ENDIAN_BIG
            flipToLittleEndian(tmp, sizeof(float), count);
            _write(tmp, sizeof(float), count);
# 	else
            _write(tmp, sizeof(float), count);
#	endif
		delete [] tmp;
    }
コード例 #5
0
ファイル: OgreSerializer.cpp プロジェクト: jjiezheng/pap_full
    //---------------------------------------------------------------------
    void Serializer::writeInts(const uint32* const pInt, size_t count = 1)
    {
		if(mFlipEndian)
		{
            unsigned int * pIntToWrite = (unsigned int *)malloc(sizeof(unsigned int) * count);
            memcpy(pIntToWrite, pInt, sizeof(unsigned int) * count);
            
            flipToLittleEndian(pIntToWrite, sizeof(unsigned int), count);
            writeData(pIntToWrite, sizeof(unsigned int), count);
            
            free(pIntToWrite);
		}
		else
		{
            writeData(pInt, sizeof(unsigned int), count);
		}
    }
コード例 #6
0
ファイル: OgreSerializer.cpp プロジェクト: jjiezheng/pap_full
    //---------------------------------------------------------------------
    void Serializer::writeShorts(const uint16* const pShort, size_t count = 1)
    {
		if(mFlipEndian)
		{
            unsigned short * pShortToWrite = (unsigned short *)malloc(sizeof(unsigned short) * count);
            memcpy(pShortToWrite, pShort, sizeof(unsigned short) * count);
            
            flipToLittleEndian(pShortToWrite, sizeof(unsigned short), count);
            writeData(pShortToWrite, sizeof(unsigned short), count);
            
            free(pShortToWrite);
		}
		else
		{
            writeData(pShort, sizeof(unsigned short), count);
		}
    }
コード例 #7
0
ファイル: OgreSerializer.cpp プロジェクト: jjiezheng/pap_full
    //---------------------------------------------------------------------
    void Serializer::writeFloats(const float* const pFloat, size_t count)
    {
		if (mFlipEndian)
		{
            float * pFloatToWrite = (float *)malloc(sizeof(float) * count);
            memcpy(pFloatToWrite, pFloat, sizeof(float) * count);
            
            flipToLittleEndian(pFloatToWrite, sizeof(float), count);
            writeData(pFloatToWrite, sizeof(float), count);
            
            free(pFloatToWrite);
		}
		else
		{
            writeData(pFloat, sizeof(float), count);
		}
    }
コード例 #8
0
ファイル: OgreSerializer.cpp プロジェクト: jjiezheng/pap_full
    //---------------------------------------------------------------------
    void Serializer::writeFloats(const double* const pDouble, size_t count)
    {
		// Convert to float, then write
		float* tmp = OGRE_ALLOC_T(float, count, MEMCATEGORY_GENERAL);
		for (unsigned int i = 0; i < count; ++i)
		{
			tmp[i] = static_cast<float>(pDouble[i]);
		}
		if(mFlipEndian)
		{
            flipToLittleEndian(tmp, sizeof(float), count);
            writeData(tmp, sizeof(float), count);
		}
		else
		{
            writeData(tmp, sizeof(float), count);
		}
		OGRE_FREE(tmp, MEMCATEGORY_GENERAL);
    }
コード例 #9
0
    //---------------------------------------------------------------------
    void OgreSerializer::writeFloats( const double* const pDouble, size_t count )
    {
        // Convert to float, then write
        float * tmp = new float[ count ];

        for ( unsigned int i = 0; i < count; ++i )
        {
            tmp[ i ] = static_cast<float>( pDouble[ i ] );
        }

        if ( mFlipEndian )
        {
            flipToLittleEndian( tmp, sizeof( float ), count );
            writeData( tmp, sizeof( float ), count );
        }

        else
        {
            writeData( tmp, sizeof( float ), count );
        }

        delete [] tmp;
    }