Merge from trunk, revisions 4495-4510. Mostly whitespace and indentation fixes; mipmap fixes

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@4511 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2013-04-17 17:45:53 +00:00
parent 875d0cfac8
commit aec5a3afae
207 changed files with 1267 additions and 1264 deletions

View File

@ -81,7 +81,7 @@ namespace gui
virtual u32 insertItem(u32 idx, const wchar_t* text, s32 commandId=-1, bool enabled=true,
bool hasSubMenu=false, bool checked=false, bool autoChecking=false) = 0;
//! Find an item by it's CommandID
//! Find an item by its CommandID
/**
\param commandId: We are looking for the first item which has this commandID
\param idxStartSearch: Start searching from this index.

View File

@ -147,7 +147,6 @@ namespace gui
//! Get the cursor blinktime
virtual irr::u32 getCursorBlinkTime() const = 0;
};

View File

@ -114,7 +114,6 @@ public:
//! Get maximal random derivation from the direction
virtual s32 getMaxAngleDegrees() const = 0;
//! Get emitter type
virtual E_PARTICLE_EMITTER_TYPE getType() const { return EPET_POINT; }
};

View File

@ -68,8 +68,9 @@ public:
virtual void clearParticles() = 0;
//! Do manually update the particles.
//! This should only be called when you want to render the node outside the scenegraph,
//! as the node will care about this otherwise automatically.
/** This should only be called when you want to render the node outside
the scenegraph, as the node will care about this otherwise
automatically. */
virtual void doParticleSystem(u32 time) = 0;
//! Gets the particle emitter, which creates the particles.

View File

@ -412,9 +412,7 @@ namespace quake3
SAWTOOTH_INVERSE = WAVE_MODIFIER_FUNCTION + 6,
NOISE = WAVE_MODIFIER_FUNCTION + 7,
UNKNOWN = -2
};
struct SModifierFunction

View File

@ -7,12 +7,12 @@
//! Irrlicht SDK Version
#define IRRLICHT_VERSION_MAJOR 1
#define IRRLICHT_VERSION_MINOR 8
#define IRRLICHT_VERSION_MINOR 9
#define IRRLICHT_VERSION_REVISION 0
// This flag will be defined only in SVN, the official release code will have
// it undefined
//#define IRRLICHT_VERSION_SVN -alpha
#define IRRLICHT_SDK_VERSION "1.8.0"
#define IRRLICHT_VERSION_SVN alpha
#define IRRLICHT_SDK_VERSION "1.9.0"
#include <stdio.h> // TODO: Although included elsewhere this is required at least for mingw
@ -917,7 +917,6 @@ precision will be lower but speed higher. currently X86 only
#define _tfindnext __tfindnext
typedef long intptr_t;
#endif
#endif
#endif // __IRR_COMPILE_CONFIG_H_INCLUDED__

View File

@ -20,27 +20,26 @@ namespace core
// ----------- some basic quite often used string functions -----------------
//! search if a filename has a proper extension
inline s32 isFileExtension ( const io::path& filename,
const io::path& ext0,
const io::path& ext1,
const io::path& ext2)
inline s32 isFileExtension (const io::path& filename, const io::path& ext0,
const io::path& ext1, const io::path& ext2)
{
s32 extPos = filename.findLast ( '.' );
if ( extPos < 0 )
return 0;
extPos += 1;
if ( filename.equals_substring_ignore_case ( ext0, extPos ) ) return 1;
if ( filename.equals_substring_ignore_case ( ext1, extPos ) ) return 2;
if ( filename.equals_substring_ignore_case ( ext2, extPos ) ) return 3;
if ( filename.equals_substring_ignore_case ( ext0, extPos ) )
return 1;
if ( filename.equals_substring_ignore_case ( ext1, extPos ) )
return 2;
if ( filename.equals_substring_ignore_case ( ext2, extPos ) )
return 3;
return 0;
}
//! search if a filename has a proper extension
inline bool hasFileExtension ( const io::path& filename,
const io::path& ext0,
const io::path& ext1 = "",
const io::path& ext2 = "")
inline bool hasFileExtension(const io::path& filename, const io::path& ext0,
const io::path& ext1 = "", const io::path& ext2 = "")
{
return isFileExtension ( filename, ext0, ext1, ext2 ) > 0;
}

View File

@ -13,8 +13,8 @@ namespace irr
namespace core
{
//! Selection of characters which count as decimal point in fast_atof
// TODO: This should probably also be used in irr::core::string, but the float-to-string code
// used there has to be rewritten first.
// TODO: This should probably also be used in irr::core::string, but
// the float-to-string code used there has to be rewritten first.
IRRLICHT_API extern irr::core::stringc LOCALE_DECIMAL_POINTS;
// we write [17] here instead of [] to work around a swig bug

View File

@ -25,8 +25,7 @@ class array
public:
//! Default constructor for empty array.
array()
: data(0), allocated(0), used(0),
array() : data(0), allocated(0), used(0),
strategy(ALLOC_STRATEGY_DOUBLE), free_when_destroyed(true), is_sorted(true)
{
}
@ -34,9 +33,9 @@ public:
//! Constructs an array and allocates an initial chunk of memory.
/** \param start_count Amount of elements to pre-allocate. */
array(u32 start_count)
: data(0), allocated(0), used(0),
strategy(ALLOC_STRATEGY_DOUBLE), free_when_destroyed(true), is_sorted(true)
array(u32 start_count) : data(0), allocated(0), used(0),
strategy(ALLOC_STRATEGY_DOUBLE),
free_when_destroyed(true), is_sorted(true)
{
reallocate(start_count);
}

View File

@ -187,7 +187,7 @@
#include "vector2d.h"
#include "vector3d.h"
/*! \mainpage Irrlicht Engine 1.8 API documentation
/*! \mainpage Irrlicht Engine 1.9 API documentation
*
* <div align="center"><img src="logobig.png" ></div>
*

View File

@ -78,14 +78,14 @@ class line2d
{
// Uses the method given at:
// http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/
const f32 commonDenominator = (f32)(l.end.Y - l.start.Y)*(end.X - start.X) -
(l.end.X - l.start.X)*(end.Y - start.Y);
const f32 commonDenominator = (f32)((l.end.Y - l.start.Y)*(end.X - start.X) -
(l.end.X - l.start.X)*(end.Y - start.Y));
const f32 numeratorA = (f32)(l.end.X - l.start.X)*(start.Y - l.start.Y) -
(l.end.Y - l.start.Y)*(start.X -l.start.X);
const f32 numeratorA = (f32)((l.end.X - l.start.X)*(start.Y - l.start.Y) -
(l.end.Y - l.start.Y)*(start.X -l.start.X));
const f32 numeratorB = (f32)(end.X - start.X)*(start.Y - l.start.Y) -
(end.Y - start.Y)*(start.X -l.start.X);
const f32 numeratorB = (f32)((end.X - start.X)*(start.Y - l.start.Y) -
(end.Y - start.Y)*(start.X -l.start.X));
if(equals(commonDenominator, 0.f))
{

View File

@ -1,5 +1,5 @@
==========================================================================
The Irrlicht Engine SDK version 1.8
The Irrlicht Engine SDK version 1.9
==========================================================================
Welcome the Irrlicht Engine SDK.

View File

@ -11,7 +11,7 @@
# norootforbuild
Name: libIrrlicht1
Version: 1.8.0
Version: 1.9.0
Release: 0.pm.1
Summary: The Irrlicht Engine SDK
License: see readme.txt

View File

@ -795,7 +795,6 @@ REALINLINE void CBurningShader_Raster_Reference::scanline ()
pShader.i += 1;
if ( pShader.i > pShader.dx )
return;
}
}
@ -848,7 +847,6 @@ REALINLINE void CBurningShader_Raster_Reference::scanline ()
}
void CBurningShader_Raster_Reference::drawTriangle ( const s4DVertex *a,const s4DVertex *b,const s4DVertex *c )
{
sScanConvertData scan;

View File

@ -227,7 +227,6 @@ namespace video
: CD3D9ShaderMaterialRenderer(d3ddev, driver, 0, baseMaterial),
CurrentScale(0.0f)
{
#ifdef _DEBUG
setDebugName("CD3D9ParallaxMapRenderer");
#endif

View File

@ -28,8 +28,7 @@ public:
//! \param useAlphaChannel: true if the alpha channel from the texture should be used
//! \return
//! true if the image list was created
bool createImageList(
video::ITexture* texture,
bool createImageList(video::ITexture* texture,
core::dimension2d<s32> imageSize,
bool useAlphaChannel);

View File

@ -131,7 +131,6 @@ namespace gui
//! Sets whether to draw the background
virtual void setDrawBackground(bool draw);
private:
struct ListItem

View File

@ -60,12 +60,11 @@ namespace video
typedef struct _RGBdata
{
u8 *tmp,
*tmpR,
*tmpG,
*tmpB,
*tmpA;
u8 *tmp;
u8 *tmpR;
u8 *tmpG;
u8 *tmpB;
u8 *tmpA;
u32 *StartTable; // compressed data table, holds file offsets
u32 *LengthTable; // length for the above data, hold lengths for above

View File

@ -212,8 +212,8 @@ namespace irr
core::position2d<s32> CursorPos;
core::dimension2d<u32> WindowSize;
core::dimension2d<f32> InvWindowSize;
bool IsVisible,
UseReferenceRect;
bool IsVisible;
bool UseReferenceRect;
core::rect<s32> ReferenceRect;
};

View File

@ -678,8 +678,10 @@ bool CIrrDeviceLinux::createWindow()
if (!CreationParams.Fullscreen)
{
if (CreationParams.WindowPosition.X > 0) x = CreationParams.WindowPosition.X;
if (CreationParams.WindowPosition.Y > 0) y = CreationParams.WindowPosition.Y;
if (CreationParams.WindowPosition.X > 0)
x = CreationParams.WindowPosition.X;
if (CreationParams.WindowPosition.Y > 0)
y = CreationParams.WindowPosition.Y;
}
// create new Window

View File

@ -140,17 +140,31 @@ namespace irr
BOOL gotCursorInfo = GetCursorInfo(&info);
while ( gotCursorInfo )
{
if ( (visible && info.flags == CURSOR_SHOWING) // visible
|| (!visible && info.flags == 0 ) ) // hidden
#ifdef CURSOR_SUPPRESSED
// new flag for Windows 8, where cursor
// might be suppressed for touch interface
if (info.flags == CURSOR_SUPPRESSED)
{
visible=false;
break;
}
#endif
if ( (visible && info.flags == CURSOR_SHOWING) || // visible
(!visible && info.flags == 0 ) ) // hidden
{
break;
}
int showResult = ShowCursor(visible); // this only increases an internal display counter in windows, so it might have to be called some more
if ( showResult < 0 )
{
// this only increases an internal
// display counter in windows, so it
// might have to be called some more
const int showResult = ShowCursor(visible);
// if result has correct sign we can
// stop here as well
if (( !visible && showResult < 0 ) ||
(visible && showResult >= 0))
break;
}
info.cbSize = sizeof(CURSORINFO); // yes, it really must be set each time
// yes, it really must be set each time
info.cbSize = sizeof(CURSORINFO);
gotCursorInfo = GetCursorInfo(&info);
}
IsVisible = visible;

View File

@ -60,7 +60,6 @@ public:
//! Creates a clone of this scene node and its children.
virtual ISceneNode* clone(ISceneNode* newParent=0, ISceneManager* newManager=0);
//! Sets the light's radius of influence.
/** Outside this radius the light won't lighten geometry and cast no
shadows. Setting the radius will also influence the attenuation, setting

View File

@ -39,7 +39,6 @@ public:
virtual bool OnRender(IMaterialRendererServices* service, E_VERTEX_TYPE vtxtype)
{
Driver->setTextureRenderStates(Driver->getCurrentMaterial(), false, true);
return true;
}

View File

@ -445,20 +445,6 @@ void COpenGLTexture::uploadTexture(bool newTexture, void* mipmapData, u32 level)
if (!level && newTexture)
{
if (!IsCompressed && HasMipMaps && !mipmapData && Driver->queryFeature(EVDF_MIP_MAP_AUTO_UPDATE))
{
if (!MipmapLegacyMode && AutomaticMipmapUpdate)
{
glEnable(GL_TEXTURE_2D);
Driver->extGlGenerateMipmap(GL_TEXTURE_2D);
}
}
else if(HasMipMaps)
{
// Either generate manually due to missing capability
// or use predefined mipmap data eg. for compressed textures
AutomaticMipmapUpdate=false;
if (IsCompressed && !mipmapData)
{
if (image->hasMipMaps())
@ -468,7 +454,6 @@ void COpenGLTexture::uploadTexture(bool newTexture, void* mipmapData, u32 level)
}
regenerateMipMapLevels(mipmapData);
}
if (HasMipMaps) // might have changed in regenerateMipMapLevels
{
@ -686,13 +671,35 @@ bool COpenGLTexture::hasMipMaps() const
//! modifying the texture
void COpenGLTexture::regenerateMipMapLevels(void* mipmapData)
{
if (AutomaticMipmapUpdate || !HasMipMaps || !Image)
// texture require mipmaps?
if (!HasMipMaps)
return;
if (IsCompressed && !mipmapData)
// we don't use custom data for mipmaps.
if (!mipmapData)
{
// compressed textures require custom data for prepare mipmaps.
if (IsCompressed)
return;
if ((Image->getDimension().Width==1) && (Image->getDimension().Height==1))
// texture use legacy method for generate mipmaps?
if (AutomaticMipmapUpdate && MipmapLegacyMode)
return;
// hardware doesn't support generate mipmaps for certain texture but image data doesn't exist or is wrong.
if (!AutomaticMipmapUpdate && (!Image || (Image && ((Image->getDimension().Width==1) && (Image->getDimension().Height==1)))))
return;
}
// hardware moethods for generate mipmaps.
if (!mipmapData && AutomaticMipmapUpdate && !MipmapLegacyMode)
{
glEnable(GL_TEXTURE_2D);
Driver->extGlGenerateMipmap(GL_TEXTURE_2D);
return;
}
// Manually create mipmaps or use prepared version
u32 compressedDataSize = 0;
u32 width=Image->getDimension().Width;

View File

@ -142,9 +142,9 @@ bool CPLYMeshWriter::writeMesh(io::IWriteFile* file, scene::IMesh* mesh, s32 fla
for (u32 j=0; j < mb->getIndexCount(); j+=3)
{
// y and z are flipped so triangles are reversed
u32 a=StartOffset,
b=StartOffset,
c=StartOffset;
u32 a=StartOffset;
u32 b=StartOffset;
u32 c=StartOffset;
switch(mb->getIndexType())
{
@ -171,8 +171,6 @@ bool CPLYMeshWriter::writeMesh(io::IWriteFile* file, scene::IMesh* mesh, s32 fla
}
// all done!
return true;
}

View File

@ -40,7 +40,8 @@ public:
virtual bool isALoadableFileFormat(io::IReadFile *file) const;
//! Loads the scene into the scene manager.
virtual bool loadScene(io::IReadFile* file, ISceneUserDataSerializer* userDataSerializer=0,
virtual bool loadScene(io::IReadFile* file,
ISceneUserDataSerializer* userDataSerializer=0,
ISceneNode* rootNode=0);
private:

View File

@ -144,7 +144,6 @@ REALINLINE void CTRTextureLightMap2_M1::scanline_bilinear2 ()
i += 1;
if ( i > dx )
return;
}
// lazy setup rest of scanline
@ -164,7 +163,6 @@ REALINLINE void CTRTextureLightMap2_M1::scanline_bilinear2 ()
i += 1;
if ( i > dx )
return;
}
// lazy setup rest of scanline
@ -246,7 +244,6 @@ REALINLINE void CTRTextureLightMap2_M1::scanline_bilinear2 ()
}
void CTRTextureLightMap2_M1::drawTriangle ( const s4DVertex *a,const s4DVertex *b,const s4DVertex *c )
{
sScanConvertData scan;

View File

@ -144,7 +144,6 @@ REALINLINE void CTRTextureLightMap2_M2::scanline_bilinear2 ()
i += 1;
if ( i > dx )
return;
}
// lazy setup rest of scanline
@ -164,7 +163,6 @@ REALINLINE void CTRTextureLightMap2_M2::scanline_bilinear2 ()
i += 1;
if ( i > dx )
return;
}
// lazy setup rest of scanline
@ -246,7 +244,6 @@ REALINLINE void CTRTextureLightMap2_M2::scanline_bilinear2 ()
}
void CTRTextureLightMap2_M2::drawTriangle ( const s4DVertex *a,const s4DVertex *b,const s4DVertex *c )
{
sScanConvertData scan;

View File

@ -149,7 +149,6 @@ REALINLINE void CTRTextureLightMap2_M4::scanline_bilinear2_mag ()
i += 1;
if ( i > dx )
return;
}
// lazy setup rest of scanline
@ -169,7 +168,6 @@ REALINLINE void CTRTextureLightMap2_M4::scanline_bilinear2_mag ()
i += 1;
if ( i > dx )
return;
}
// lazy setup rest of scanline
@ -249,8 +247,7 @@ REALINLINE void CTRTextureLightMap2_M4::scanline_bilinear2_mag ()
}
/*!
*/
REALINLINE void CTRTextureLightMap2_M4::scanline_bilinear2_min ()
{
tVideoSample *dst;
@ -292,7 +289,6 @@ REALINLINE void CTRTextureLightMap2_M4::scanline_bilinear2_min ()
i += 1;
if ( i > dx )
return;
}
// lazy setup rest of scanline
@ -312,7 +308,6 @@ REALINLINE void CTRTextureLightMap2_M4::scanline_bilinear2_min ()
i += 1;
if ( i > dx )
return;
}
// lazy setup rest of scanline

View File

@ -114,7 +114,6 @@ static inline void swap_xor ( s32 &a, s32 &b )
*/
void CTRTextureWire2::renderLine ( const s4DVertex *a,const s4DVertex *b ) const
{
int pitch0 = RenderTarget->getDimension().Width << VIDEO_SAMPLE_GRANULARITY;
int pitch1 = RenderTarget->getDimension().Width << 2;

View File

@ -259,9 +259,7 @@ namespace scene
core::array<f64> LODDistanceThreshold;
};
virtual void preRenderCalculationsIfNeeded();
virtual void preRenderLODCalculations();
virtual void preRenderIndicesCalculations();

View File

@ -82,8 +82,10 @@ namespace scene
video::SColor FootColor; // Color at the source
video::SColor TailColor; // Color at the end.
core::vector3df LightDimensions; // LightDimensions.Y Distance of shooting -- Length of beams
// LightDimensions.X and LightDimensions.Z determine the size/dimension of the plane
// LightDimensions.Y Distance of shooting -- Length of beams
// LightDimensions.X and LightDimensions.Z determine the
// size/dimension of the plane
core::vector3df LightDimensions;
};
} // end namespace scene

View File

@ -566,8 +566,9 @@ private:
long size = callback->getSize();
if (size<0)
return false;
size += 4; // We need four terminating 0's at the end.
// We need four terminating 0's at the end.
// For ASCII we need 1 0's, for UTF-16 2, for UTF-32 4.
size += 4;
char* data8 = new char[size];

Binary file not shown.

View File

@ -343,7 +343,7 @@
<DataExecutionPrevention>
</DataExecutionPrevention>
<ImportLibrary>..\..\lib\Win32-visualstudio\Irrlicht.lib</ImportLibrary>
<Version>1.8</Version>
<Version>1.9</Version>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -420,7 +420,7 @@
<DataExecutionPrevention>
</DataExecutionPrevention>
<ImportLibrary>..\..\lib\Win32-visualstudio\Irrlicht.lib</ImportLibrary>
<Version>1.8</Version>
<Version>1.9</Version>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -504,7 +504,7 @@
</DataExecutionPrevention>
<ImportLibrary>..\..\lib\Win32-visualstudio\Irrlicht.lib</ImportLibrary>
<SubSystem>Windows</SubSystem>
<Version>1.8</Version>
<Version>1.9</Version>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release - Fast FPU|x64'">
@ -791,7 +791,7 @@
<DataExecutionPrevention>
</DataExecutionPrevention>
<ImportLibrary>..\..\lib\Win32-visualstudio\Irrlicht.lib</ImportLibrary>
<Version>1.8</Version>
<Version>1.9</Version>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SDL-Debug|x64'">

View File

@ -349,7 +349,7 @@
<DataExecutionPrevention>
</DataExecutionPrevention>
<ImportLibrary>..\..\lib\Win32-visualstudio\Irrlicht.lib</ImportLibrary>
<Version>1.8</Version>
<Version>1.9</Version>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -426,7 +426,7 @@
<DataExecutionPrevention>
</DataExecutionPrevention>
<ImportLibrary>..\..\lib\Win32-visualstudio\Irrlicht.lib</ImportLibrary>
<Version>1.8</Version>
<Version>1.9</Version>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -510,7 +510,7 @@
</DataExecutionPrevention>
<ImportLibrary>..\..\lib\Win32-visualstudio\Irrlicht.lib</ImportLibrary>
<SubSystem>Windows</SubSystem>
<Version>1.8</Version>
<Version>1.9</Version>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release - Fast FPU|x64'">
@ -797,7 +797,7 @@
<DataExecutionPrevention>
</DataExecutionPrevention>
<ImportLibrary>..\..\lib\Win32-visualstudio\Irrlicht.lib</ImportLibrary>
<Version>1.8</Version>
<Version>1.9</Version>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='SDL-Debug|x64'">

View File

@ -1,7 +1,7 @@
VERSION_MAJOR = 1
VERSION_MINOR = 8
VERSION_MINOR = 9
VERSION_RELEASE = 0
# Irrlicht Engine 1.8.0
# Irrlicht Engine 1.9.0
# Makefile for Linux
#
# To use, just run:

View File

@ -16,7 +16,6 @@
#include "SMaterial.h"
namespace irr
{
@ -751,8 +750,7 @@ inline void getTexel_fix ( tFixPoint &r, tFixPoint &g, tFixPoint &b,
// get video sample to fixpoint
REALINLINE void getTexel_fix ( tFixPoint &a,
const sInternalTexture * t, const tFixPointu tx, const tFixPointu ty
)
const sInternalTexture * t, const tFixPointu tx, const tFixPointu ty)
{
u32 ofs;
@ -889,16 +887,24 @@ REALINLINE void getSample_texture ( tFixPoint &r, tFixPoint &g, tFixPoint &b,
o3 = ( (tx+FIX_POINT_ONE) & t->textureXMask ) >> ( FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY );
t00 = *((tVideoSample*)( (u8*) t->data + (o0 | o2 ) ));
r00 = (t00 & MASK_R) >> SHIFT_R; g00 = (t00 & MASK_G) >> SHIFT_G; b00 = (t00 & MASK_B);
r00 = (t00 & MASK_R) >> SHIFT_R;
g00 = (t00 & MASK_G) >> SHIFT_G;
b00 = (t00 & MASK_B);
t00 = *((tVideoSample*)( (u8*) t->data + (o0 | o3 ) ));
r10 = (t00 & MASK_R) >> SHIFT_R; g10 = (t00 & MASK_G) >> SHIFT_G; b10 = (t00 & MASK_B);
r10 = (t00 & MASK_R) >> SHIFT_R;
g10 = (t00 & MASK_G) >> SHIFT_G;
b10 = (t00 & MASK_B);
t00 = *((tVideoSample*)( (u8*) t->data + (o1 | o2 ) ));
r01 = (t00 & MASK_R) >> SHIFT_R; g01 = (t00 & MASK_G) >> SHIFT_G; b01 = (t00 & MASK_B);
r01 = (t00 & MASK_R) >> SHIFT_R;
g01 = (t00 & MASK_G) >> SHIFT_G;
b01 = (t00 & MASK_B);
t00 = *((tVideoSample*)( (u8*) t->data + (o1 | o3 ) ));
r11 = (t00 & MASK_R) >> SHIFT_R; g11 = (t00 & MASK_G) >> SHIFT_G; b11 = (t00 & MASK_B);
r11 = (t00 & MASK_R) >> SHIFT_R;
g11 = (t00 & MASK_G) >> SHIFT_G;
b11 = (t00 & MASK_B);
#endif