forked from Mirrorlandia_minetest/irrlicht
Merging r6128 through r6139 from trunk to ogl-es branch.
Note: I could not merge 2 OSX project files as I'm not sure how to correctly resolve their conflicts. Maybe old version for those files are still OK, as ogl-es branch got updated once before (leaving trunk behind). In case it causes problems I hope someone can send another patch for those 2 files: source/Irrlicht/Irrlicht.xcodeproj/xcshareddata/xcschemes source/Irrlicht/Irrlicht.xcodeproj/project.pbxproj git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@6140 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
parent
048aa500b9
commit
8b9947f9f6
@ -9,6 +9,10 @@ Changes in ogl-es (not yet released - will be merged with trunk at some point)
|
||||
|
||||
--------------------------
|
||||
Changes in 1.9 (not yet released)
|
||||
- No longer try to set WM_QUIT when using an external Window on Win32.
|
||||
Thx @Marko Mahnic for the patch (https://sourceforge.net/p/irrlicht/bugs/449)
|
||||
- ply meshloader now also supports textures with uv-labels named texture_u/texture_v.
|
||||
Thx @acy for bugreport and test-model (http://irrlicht.sourceforge.net/forum/viewtopic.php?f=4&t=52646)
|
||||
- Fix potential reading/writing 1 byte behind it's own buffer in PLY loader.
|
||||
Thanks @wolfgang for report and patch (http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=52627&p=305573#p305573)
|
||||
- ICursorControl::isVisible is now always returning the flag set in setVisible.
|
||||
|
@ -424,12 +424,13 @@ void CDemo::loadSceneData()
|
||||
model1->setPosition(core::vector3df(100,40,-80));
|
||||
model1->setScale(core::vector3df(2,2,2));
|
||||
model1->setMD2Animation(scene::EMAT_STAND);
|
||||
model1->setMaterialFlag(video::EMF_LIGHTING, false);
|
||||
model1->setMaterialFlag(video::EMF_LIGHTING, true);
|
||||
model1->getMaterial(0).Shininess = 40.f;
|
||||
model1->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, true);
|
||||
model1->setMaterialType(video::EMT_SPHERE_MAP);
|
||||
model1->setAutomaticCulling(scene::EAC_OFF); // avoid shadows not updating
|
||||
scene::IShadowVolumeSceneNode * shadVol = model1->addShadowVolumeSceneNode();
|
||||
shadVol->setOptimization(scene::ESV_NONE); // Sydney has broken shadows otherwise
|
||||
if(shadVol) shadVol->setOptimization(scene::ESV_NONE); // Sydney has broken shadows otherwise
|
||||
}
|
||||
|
||||
model2 = sm->addAnimatedMeshSceneNode(mesh);
|
||||
@ -443,7 +444,7 @@ void CDemo::loadSceneData()
|
||||
model2->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, true);
|
||||
model2->setAutomaticCulling(scene::EAC_OFF); // avoid shadows not updating
|
||||
scene::IShadowVolumeSceneNode * shadVol = model2->addShadowVolumeSceneNode();
|
||||
shadVol->setOptimization(scene::ESV_NONE); // Sydney has broken shadows otherwise
|
||||
if (shadVol) shadVol->setOptimization(scene::ESV_NONE); // Sydney has broken shadows otherwise
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,8 +85,8 @@ namespace gui
|
||||
//! Sets text justification mode
|
||||
/** \param horizontal: EGUIA_UPPERLEFT for left justified (default),
|
||||
EGUIA_LOWEERRIGHT for right justified, or EGUIA_CENTER for centered text.
|
||||
\param vertical: EGUIA_UPPERLEFT to align with top edge,
|
||||
EGUIA_LOWEERRIGHT for bottom edge, or EGUIA_CENTER for centered text (default). */
|
||||
\param vertical: EGUIA_UPPERLEFT to align with top edge (default),
|
||||
EGUIA_LOWEERRIGHT for bottom edge, or EGUIA_CENTER for centered text. */
|
||||
virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) = 0;
|
||||
|
||||
//! Enables or disables word wrap for using the static text as multiline text control.
|
||||
|
@ -382,7 +382,9 @@ namespace video
|
||||
\param format The color format of the render target. Floating point formats are supported.
|
||||
\return Pointer to the created texture or 0 if the texture
|
||||
could not be created. This pointer should not be dropped. See
|
||||
IReferenceCounted::drop() for more information. */
|
||||
IReferenceCounted::drop() for more information.
|
||||
You may want to remove it from driver texture cache with removeTexture if you no longer need it.
|
||||
*/
|
||||
virtual ITexture* addRenderTargetTexture(const core::dimension2d<u32>& size,
|
||||
const io::path& name = "rt", const ECOLOR_FORMAT format = ECF_UNKNOWN) =0;
|
||||
|
||||
@ -1476,7 +1478,7 @@ namespace video
|
||||
other flags can be changed, though some might have to effect
|
||||
in most cases.
|
||||
Please note that you have to enable/disable this effect with
|
||||
enableInitMaterial2D(). This effect is costly, as it increases
|
||||
enableMaterial2D(). This effect is costly, as it increases
|
||||
the number of state changes considerably. Always reset the
|
||||
values when done.
|
||||
\return Material reference which should be altered to reflect
|
||||
|
@ -243,7 +243,7 @@ namespace core
|
||||
|
||||
//! returns if a equals b, taking possible rounding errors into account
|
||||
template <class T>
|
||||
inline bool equals(const T a, const T b, const T tolerance = roundingError<T>())
|
||||
inline bool equals(const T a, const T b, const T tolerance = roundingError<T>())
|
||||
{
|
||||
return (a + tolerance >= b) && (a - tolerance <= b);
|
||||
}
|
||||
@ -633,7 +633,7 @@ namespace core
|
||||
return rec;
|
||||
*/
|
||||
/*
|
||||
register u32 x = 0x7F000000 - IR ( p );
|
||||
u32 x = 0x7F000000 - IR ( p );
|
||||
const f32 r = FR ( x );
|
||||
return r * (2.0f - p * r);
|
||||
*/
|
||||
|
@ -878,7 +878,7 @@ static void executeBlit_TextureBlendColor_16_to_16( const SBlitJob * job )
|
||||
f18 src_x = f18_zero;
|
||||
for (u32 dx = 0; dx < job->width; ++dx, src_x += wscale)
|
||||
{
|
||||
register u16 c0 = src[f18_floor(src_x)];
|
||||
u16 c0 = src[f18_floor(src_x)];
|
||||
if (0 == (c0 & 0x8000))
|
||||
continue;
|
||||
|
||||
|
@ -862,10 +862,16 @@ void CIrrDeviceMacOSX::createDriver()
|
||||
os::Printer::log("Could not create OpenGL driver.", ELL_ERROR);
|
||||
}
|
||||
|
||||
if (Window)
|
||||
[(NSOpenGLContext*)ContextManager->getContext().OpenGLOSX.Context setView:[Window contentView]];
|
||||
else
|
||||
[(NSOpenGLContext*)ContextManager->getContext().OpenGLOSX.Context setView:(NSView*)CreationParams.WindowId];
|
||||
if (Window)
|
||||
{
|
||||
[[Window contentView] setWantsBestResolutionOpenGLSurface:NO];
|
||||
[(NSOpenGLContext*)ContextManager->getContext().OpenGLOSX.Context setView:[Window contentView]];
|
||||
}
|
||||
else
|
||||
{
|
||||
[(NSView*)CreationParams.WindowId setWantsBestResolutionOpenGLSurface:NO];
|
||||
[(NSOpenGLContext*)ContextManager->getContext().OpenGLOSX.Context setView:(NSView*)CreationParams.WindowId];
|
||||
}
|
||||
|
||||
#ifndef __MAC_10_6
|
||||
CGLContextObj CGLContext = (CGLContextObj)[(NSOpenGLContext*)ContextManager->getContext().OpenGLOSX.Context CGLContextObj];
|
||||
|
@ -1400,12 +1400,12 @@ bool CIrrDeviceWin32::present(video::IImage* image, void* windowId, core::rect<s
|
||||
//! notifies the device that it should close itself
|
||||
void CIrrDeviceWin32::closeDevice()
|
||||
{
|
||||
MSG msg;
|
||||
PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
|
||||
PostQuitMessage(0);
|
||||
PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
|
||||
if (!ExternalWindow)
|
||||
{
|
||||
MSG msg;
|
||||
PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
|
||||
PostQuitMessage(0);
|
||||
PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
|
||||
DestroyWindow(HWnd);
|
||||
const fschar_t* ClassName = __TEXT("CIrrDeviceWin32");
|
||||
HINSTANCE hInstance = GetModuleHandle(0);
|
||||
|
@ -2910,9 +2910,15 @@ inline void COpenGLExtensionHandler::extGlTextureSubImage2D(GLuint texture, GLen
|
||||
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_CUBE_MAP, &bound);
|
||||
break;
|
||||
#ifdef GL_VERSION_3_1
|
||||
case GL_TEXTURE_RECTANGLE:
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE, &bound);
|
||||
break;
|
||||
#elif defined(GL_ARB_texture_rectangle)
|
||||
case GL_TEXTURE_RECTANGLE_ARB:
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &bound);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return;
|
||||
}
|
||||
@ -2967,9 +2973,15 @@ inline void COpenGLExtensionHandler::extGlTextureStorage2D(GLuint texture, GLenu
|
||||
case GL_TEXTURE_CUBE_MAP:
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_CUBE_MAP, &bound);
|
||||
break;
|
||||
#ifdef GL_VERSION_3_1
|
||||
case GL_TEXTURE_RECTANGLE:
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE, &bound);
|
||||
break;
|
||||
#elif defined(GL_ARB_texture_rectangle)
|
||||
case GL_TEXTURE_RECTANGLE_ARB:
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &bound);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return;
|
||||
}
|
||||
@ -3206,8 +3218,6 @@ inline void COpenGLExtensionHandler::extGlBindTextures(GLuint first, GLsizei cou
|
||||
,GL_TEXTURE_RECTANGLE
|
||||
#elif defined(GL_ARB_texture_rectangle)
|
||||
,GL_TEXTURE_RECTANGLE_ARB
|
||||
#elif defined(GL_NV_texture_rectangle)
|
||||
,GL_TEXTURE_RECTANGLE_NV
|
||||
#endif
|
||||
,GL_TEXTURE_CUBE_MAP
|
||||
#ifdef GL_VERSION_3_0
|
||||
@ -3355,9 +3365,15 @@ inline void COpenGLExtensionHandler::extGlGenerateTextureMipmap(GLuint texture,
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB, &bound);
|
||||
break;
|
||||
#endif
|
||||
#ifdef GL_VERSION_3_1
|
||||
case GL_TEXTURE_RECTANGLE:
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE, &bound);
|
||||
break;
|
||||
#elif defined(GL_ARB_texture_rectangle)
|
||||
case GL_TEXTURE_RECTANGLE_ARB:
|
||||
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &bound);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
os::Printer::log("DevSH would like to ask you what are you doing!!??\n",ELL_ERROR);
|
||||
return;
|
||||
|
@ -302,49 +302,51 @@ bool CPLYMeshFileLoader::readVertex(const SPLYElement &Element, scene::CDynamicM
|
||||
for (u32 i=0; i < Element.Properties.size(); ++i)
|
||||
{
|
||||
E_PLY_PROPERTY_TYPE t = Element.Properties[i].Type;
|
||||
const core::stringc& name = Element.Properties[i].Name;
|
||||
|
||||
if (Element.Properties[i].Name == "x")
|
||||
if (name == "x")
|
||||
vert.Pos.X = getFloat(t);
|
||||
else if (Element.Properties[i].Name == "y")
|
||||
else if (name == "y")
|
||||
vert.Pos.Z = getFloat(t);
|
||||
else if (Element.Properties[i].Name == "z")
|
||||
else if (name == "z")
|
||||
vert.Pos.Y = getFloat(t);
|
||||
else if (Element.Properties[i].Name == "nx")
|
||||
else if (name == "nx")
|
||||
{
|
||||
vert.Normal.X = getFloat(t);
|
||||
result=true;
|
||||
}
|
||||
else if (Element.Properties[i].Name == "ny")
|
||||
else if (name == "ny")
|
||||
{
|
||||
vert.Normal.Z = getFloat(t);
|
||||
result=true;
|
||||
}
|
||||
else if (Element.Properties[i].Name == "nz")
|
||||
else if (name == "nz")
|
||||
{
|
||||
vert.Normal.Y = getFloat(t);
|
||||
result=true;
|
||||
}
|
||||
// there isn't a single convention for the UV, some software like Blender or Assimp uses "st" instead of "uv"
|
||||
else if (Element.Properties[i].Name == "u" || Element.Properties[i].Name == "s")
|
||||
// There isn't a single convention for the UV, some software like Blender or Assimp uses "st" instead of "uv"
|
||||
// Not sure which tool creates texture_u/texture_v, but those exist as well.
|
||||
else if (name == "u" || name == "s" || name == "texture_u")
|
||||
vert.TCoords.X = getFloat(t);
|
||||
else if (Element.Properties[i].Name == "v" || Element.Properties[i].Name == "t")
|
||||
else if (name == "v" || name == "t" || name == "texture_v")
|
||||
vert.TCoords.Y = getFloat(t);
|
||||
else if (Element.Properties[i].Name == "red")
|
||||
else if (name == "red")
|
||||
{
|
||||
u32 value = Element.Properties[i].isFloat() ? (u32)(getFloat(t)*255.0f) : getInt(t);
|
||||
vert.Color.setRed(value);
|
||||
}
|
||||
else if (Element.Properties[i].Name == "green")
|
||||
else if (name == "green")
|
||||
{
|
||||
u32 value = Element.Properties[i].isFloat() ? (u32)(getFloat(t)*255.0f) : getInt(t);
|
||||
vert.Color.setGreen(value);
|
||||
}
|
||||
else if (Element.Properties[i].Name == "blue")
|
||||
else if (name == "blue")
|
||||
{
|
||||
u32 value = Element.Properties[i].isFloat() ? (u32)(getFloat(t)*255.0f) : getInt(t);
|
||||
vert.Color.setBlue(value);
|
||||
}
|
||||
else if (Element.Properties[i].Name == "alpha")
|
||||
else if (name == "alpha")
|
||||
{
|
||||
u32 value = Element.Properties[i].isFloat() ? (u32)(getFloat(t)*255.0f) : getInt(t);
|
||||
vert.Color.setAlpha(value);
|
||||
@ -366,14 +368,15 @@ bool CPLYMeshFileLoader::readFace(const SPLYElement &Element, scene::CDynamicMes
|
||||
|
||||
for (u32 i=0; i < Element.Properties.size(); ++i)
|
||||
{
|
||||
if ( (Element.Properties[i].Name == "vertex_indices" ||
|
||||
Element.Properties[i].Name == "vertex_index") && Element.Properties[i].Type == EPLYPT_LIST)
|
||||
const SPLYProperty& property = Element.Properties[i];
|
||||
if ( (property.Name == "vertex_indices" || property.Name == "vertex_index")
|
||||
&& property.Type == EPLYPT_LIST)
|
||||
{
|
||||
// get count
|
||||
s32 count = getInt(Element.Properties[i].Data.List.CountType);
|
||||
u32 a = getInt(Element.Properties[i].Data.List.ItemType),
|
||||
b = getInt(Element.Properties[i].Data.List.ItemType),
|
||||
c = getInt(Element.Properties[i].Data.List.ItemType);
|
||||
s32 count = getInt(property.Data.List.CountType);
|
||||
u32 a = getInt(property.Data.List.ItemType),
|
||||
b = getInt(property.Data.List.ItemType),
|
||||
c = getInt(property.Data.List.ItemType);
|
||||
s32 j = 3;
|
||||
|
||||
mb->getIndexBuffer().push_back(a);
|
||||
@ -383,19 +386,19 @@ bool CPLYMeshFileLoader::readFace(const SPLYElement &Element, scene::CDynamicMes
|
||||
for (; j < count; ++j)
|
||||
{
|
||||
b = c;
|
||||
c = getInt(Element.Properties[i].Data.List.ItemType);
|
||||
c = getInt(property.Data.List.ItemType);
|
||||
mb->getIndexBuffer().push_back(a);
|
||||
mb->getIndexBuffer().push_back(c);
|
||||
mb->getIndexBuffer().push_back(b);
|
||||
}
|
||||
}
|
||||
else if (Element.Properties[i].Name == "intensity")
|
||||
else if (property.Name == "intensity")
|
||||
{
|
||||
// todo: face intensity
|
||||
skipProperty(Element.Properties[i]);
|
||||
skipProperty(property);
|
||||
}
|
||||
else
|
||||
skipProperty(Element.Properties[i]);
|
||||
skipProperty(property);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -894,7 +894,7 @@ const sVec4 CBurningVideoDriver::NDCPlane[6+2] =
|
||||
|
||||
REALINLINE size_t CBurningVideoDriver::clipToFrustumTest ( const s4DVertex* v ) const
|
||||
{
|
||||
register size_t flag;
|
||||
size_t flag;
|
||||
f32 test[8];
|
||||
const f32 w = - v->Pos.w;
|
||||
|
||||
@ -2238,8 +2238,8 @@ void CBurningVideoDriver::drawVertexPrimitiveList(const void* vertices, u32 vert
|
||||
//collect pointer to face vertices
|
||||
VertexCache_get(face);
|
||||
|
||||
register size_t clipMask_i;
|
||||
register size_t clipMask_o;
|
||||
size_t clipMask_i;
|
||||
size_t clipMask_o;
|
||||
|
||||
clipMask_i = face[0]->flag;
|
||||
clipMask_o = face[0]->flag;
|
||||
|
@ -85,7 +85,7 @@ CSoftwareTexture2::CSoftwareTexture2(IImage* image, const io::path& name, u32 fl
|
||||
MipMap[0] = new CImage(BURNINGSHADER_COLOR_FORMAT, image->getDimension());
|
||||
#if defined(IRRLICHT_sRGB)
|
||||
MipMap[0]->set_sRGB( (Flags & TEXTURE_IS_LINEAR ) ? 0 : image->get_sRGB() );
|
||||
#endif
|
||||
#endif
|
||||
if (!isCompressed)
|
||||
image->copyTo(MipMap[0]);
|
||||
}
|
||||
@ -241,14 +241,14 @@ void CSoftwareTexture2::regenerateMipMapLevels(void* data)
|
||||
for (i=1; i < 0 && i < SOFTWARE_DRIVER_2_MIPMAPPING_MAX; ++i)
|
||||
{
|
||||
/*
|
||||
static u32 color[] = {
|
||||
static u32 color[] = {
|
||||
0x30bf7f00,0x3040bf00,0x30bf00bf,0x3000bf00,
|
||||
0x300080bf,0x30bf4000,0x300040bf,0x307f00bf,
|
||||
0x30bf0000,0x3000bfbf,0x304000bf,0x307fbf00,
|
||||
0x8000bf7f,0x80bf0040,0x80bfbf00,0x800000bf
|
||||
};
|
||||
*/
|
||||
static u32 color[] = {
|
||||
static u32 color[] = {
|
||||
0xFFFFFFFF,0xFFFF0000,0xFF00FF00,0xFF0000FF,
|
||||
0xFFFFFF00,0xFF00FFFF,0xFFFF00FF,0xFF0000FF,
|
||||
0xFF0000FF,0xFF0000FF,0xFF0000FF,0xFF0000FF,
|
||||
@ -473,9 +473,9 @@ u32 linear_to_srgb_8bit(const float v)
|
||||
{
|
||||
ieee754 c;
|
||||
c.f = v;
|
||||
const register size_t x = c.u;
|
||||
const size_t x = c.u;
|
||||
const u32 *table = (u32*)srgb_8bit_to_linear_float;
|
||||
register u32 y = 0;
|
||||
u32 y = 0;
|
||||
y += table[y + 128] <= x ? 128 : 0;
|
||||
y += table[y + 64] <= x ? 64 : 0;
|
||||
y += table[y + 32] <= x ? 32 : 0;
|
||||
|
@ -158,7 +158,7 @@ void CTRTextureWire2::renderLine ( const s4DVertex *a,const s4DVertex *b, int re
|
||||
if ( dy > dx )
|
||||
{
|
||||
//swap
|
||||
register s32 t;
|
||||
s32 t;
|
||||
t = dx;dx=dy;dy=t;
|
||||
t = xInc0;xInc0=yInc0;yInc0=t;
|
||||
#ifdef USE_ZBUFFER
|
||||
|
@ -182,7 +182,7 @@ static inline s32 s32_log2_s32(u32 in)
|
||||
}
|
||||
return ret;
|
||||
//return s32_log2_f32( (f32) x);
|
||||
//ieee754 _log2;_log2.f = (f32) in; return _log2.fields.exp - 127;
|
||||
//ieee754 _log2;_log2.f = (f32) in; return _log2.fields.exp - 127;
|
||||
}
|
||||
|
||||
#if 0
|
||||
@ -599,11 +599,11 @@ REALINLINE tFixPoint imulFix_tex2(const tFixPoint x, const tFixPoint y)
|
||||
REALINLINE tFixPoint imulFix_tex4(const tFixPoint x, const tFixPoint y)
|
||||
{
|
||||
#ifdef SOFTWARE_DRIVER_2_32BIT
|
||||
register tFixPoint a = (((tFixPointu)x >> 2)*(((tFixPointu)y + FIX_POINT_ONE) >> 2)) >> (tFixPointu)(FIX_POINT_PRE + 2);
|
||||
tFixPoint a = (((tFixPointu)x >> 2)*(((tFixPointu)y + FIX_POINT_ONE) >> 2)) >> (tFixPointu)(FIX_POINT_PRE + 2);
|
||||
#else
|
||||
register tFixPoint a = (x * (y + FIX_POINT_ONE)) >> (FIX_POINT_PRE + 3);
|
||||
tFixPoint a = (x * (y + FIX_POINT_ONE)) >> (FIX_POINT_PRE + 3);
|
||||
#endif
|
||||
register tFixPoint mask = (a - FIXPOINT_COLOR_MAX) >> 31;
|
||||
tFixPoint mask = (a - FIXPOINT_COLOR_MAX) >> 31;
|
||||
return (a & mask) | (FIXPOINT_COLOR_MAX & ~mask);
|
||||
}
|
||||
|
||||
@ -624,7 +624,7 @@ REALINLINE tFixPoint imulFix_tex4(const tFixPoint x, const tFixPoint y)
|
||||
*/
|
||||
REALINLINE tFixPoint clampfix_maxcolor ( const tFixPoint a)
|
||||
{
|
||||
register tFixPoint c = (a - FIXPOINT_COLOR_MAX) >> 31;
|
||||
tFixPoint c = (a - FIXPOINT_COLOR_MAX) >> 31;
|
||||
return (a & c) | ( FIXPOINT_COLOR_MAX & ~c);
|
||||
}
|
||||
|
||||
@ -828,7 +828,7 @@ struct sInternalTexture
|
||||
// get video sample plain
|
||||
static inline tVideoSample getTexel_plain ( const sInternalTexture* t, const tFixPointu tx, const tFixPointu ty )
|
||||
{
|
||||
register size_t ofs;
|
||||
size_t ofs;
|
||||
|
||||
ofs = ( ( ty & t->textureYMask ) >> FIX_POINT_PRE ) << t->pitchlog2;
|
||||
ofs |= ( tx & t->textureXMask ) >> ( FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY );
|
||||
@ -842,13 +842,13 @@ inline void getTexel_fix ( tFixPoint &r, tFixPoint &g, tFixPoint &b,
|
||||
const sInternalTexture* t, const tFixPointu tx, const tFixPointu ty
|
||||
)
|
||||
{
|
||||
register size_t ofs;
|
||||
size_t ofs;
|
||||
|
||||
ofs = ( ((ty + FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask ) >> FIX_POINT_PRE ) << t->pitchlog2;
|
||||
ofs |= ((tx + FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask ) >> ( FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY );
|
||||
|
||||
// texel
|
||||
register tVideoSample t00;
|
||||
tVideoSample t00;
|
||||
t00 = *((tVideoSample*)( (u8*) t->data + ofs ));
|
||||
|
||||
r = (t00 & MASK_R) >> ( SHIFT_R - FIX_POINT_PRE);
|
||||
@ -862,13 +862,13 @@ inline void getTexel_fix(tFixPoint &a, tFixPoint &r, tFixPoint &g, tFixPoint &b,
|
||||
const sInternalTexture* t, const tFixPointu tx, const tFixPointu ty
|
||||
)
|
||||
{
|
||||
register size_t ofs;
|
||||
size_t ofs;
|
||||
|
||||
ofs = (((ty+ FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;
|
||||
ofs |= ((tx+ FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);
|
||||
|
||||
// texel
|
||||
register tVideoSample t00;
|
||||
tVideoSample t00;
|
||||
t00 = *((tVideoSample*)((u8*)t->data + ofs));
|
||||
|
||||
a = (t00 & MASK_A) >> (SHIFT_A - FIX_POINT_PRE);
|
||||
@ -910,7 +910,7 @@ static REALINLINE void getSample_texture(tFixPoint &r, tFixPoint &g, tFixPoint &
|
||||
#if 0
|
||||
if (t->lodFactor > 0)
|
||||
{
|
||||
register size_t ofs;
|
||||
size_t ofs;
|
||||
|
||||
ofs = (((ty + FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;
|
||||
ofs += ((tx + FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);
|
||||
@ -932,7 +932,7 @@ static REALINLINE void getSample_texture(tFixPoint &r, tFixPoint &g, tFixPoint &
|
||||
tFixPointu r11, g11, b11;
|
||||
|
||||
size_t o0, o1, o2, o3;
|
||||
register tVideoSample t00;
|
||||
tVideoSample t00;
|
||||
|
||||
//wraps positive (ignoring negative)
|
||||
o0 = (((ty)& t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;
|
||||
@ -961,8 +961,8 @@ static REALINLINE void getSample_texture(tFixPoint &r, tFixPoint &g, tFixPoint &
|
||||
b11 = (t00 & MASK_B);
|
||||
|
||||
|
||||
register tFixPointu fracx = tx & FIX_POINT_FRACT_MASK;
|
||||
register tFixPointu fracy = ty & FIX_POINT_FRACT_MASK;
|
||||
tFixPointu fracx = tx & FIX_POINT_FRACT_MASK;
|
||||
tFixPointu fracy = ty & FIX_POINT_FRACT_MASK;
|
||||
|
||||
//w00 w01 w10 w11
|
||||
tFixPointu w[4];
|
||||
@ -999,11 +999,11 @@ static REALINLINE void getSample_texture(tFixPoint &r, tFixPoint &g, tFixPoint &
|
||||
if (tex->lodFactor > 1)
|
||||
{
|
||||
//nearest neighbor
|
||||
register size_t ofs;
|
||||
size_t ofs;
|
||||
ofs = (((ty + FIX_POINT_ZERO_DOT_FIVE) & tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;
|
||||
ofs += ((tx + FIX_POINT_ZERO_DOT_FIVE) & tex->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);
|
||||
|
||||
register tVideoSample t00;
|
||||
tVideoSample t00;
|
||||
t00 = *((tVideoSample*)((u8*)tex->data + ofs));
|
||||
|
||||
r = (t00 & MASK_R) >> (SHIFT_R - FIX_POINT_PRE);
|
||||
@ -1015,8 +1015,8 @@ static REALINLINE void getSample_texture(tFixPoint &r, tFixPoint &g, tFixPoint &
|
||||
//w00 w01 w10 w11
|
||||
tFixPointu w[4];
|
||||
{
|
||||
register tFixPointu fracx = tx & FIX_POINT_FRACT_MASK;
|
||||
register tFixPointu fracy = ty & FIX_POINT_FRACT_MASK;
|
||||
tFixPointu fracx = tx & FIX_POINT_FRACT_MASK;
|
||||
tFixPointu fracy = ty & FIX_POINT_FRACT_MASK;
|
||||
w[0] = imulFixu(FIX_POINT_ONE - fracx, FIX_POINT_ONE - fracy);
|
||||
w[1] = imulFixu(fracx, FIX_POINT_ONE - fracy);
|
||||
w[2] = imulFixu(FIX_POINT_ONE - fracx, fracy);
|
||||
@ -1026,7 +1026,7 @@ static REALINLINE void getSample_texture(tFixPoint &r, tFixPoint &g, tFixPoint &
|
||||
//wraps positive (ignoring negative)
|
||||
tVideoSample t[4];
|
||||
{
|
||||
register size_t o0, o1, o2, o3;
|
||||
size_t o0, o1, o2, o3;
|
||||
o0 = (((ty) & tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;
|
||||
o1 = (((ty + FIX_POINT_ONE) & tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;
|
||||
o2 = ((tx)& tex->textureXMask) >> (unsigned)(FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);
|
||||
@ -1068,7 +1068,7 @@ static REALINLINE void getSample_texture(tFixPoint &a, tFixPoint &r, tFixPoint &
|
||||
tFixPointu a11, r11, g11, b11;
|
||||
|
||||
size_t o0, o1, o2, o3;
|
||||
register tVideoSample t00;
|
||||
tVideoSample t00;
|
||||
|
||||
o0 = (((ty)& tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;
|
||||
o1 = (((ty + FIX_POINT_ONE) & tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;
|
||||
@ -1142,7 +1142,7 @@ static REALINLINE void getSample_texture(tFixPoint &r, tFixPoint &g, tFixPoint &
|
||||
const sInternalTexture* burning_restrict t, const tFixPointu tx, const tFixPointu ty
|
||||
)
|
||||
{
|
||||
register size_t ofs;
|
||||
size_t ofs;
|
||||
ofs = (((ty + FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;
|
||||
ofs += ((tx + FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);
|
||||
|
||||
@ -1158,7 +1158,7 @@ static REALINLINE void getSample_texture(tFixPoint &a, tFixPoint &r, tFixPoint &
|
||||
const sInternalTexture* burning_restrict t, const tFixPointu tx, const tFixPointu ty
|
||||
)
|
||||
{
|
||||
register size_t ofs;
|
||||
size_t ofs;
|
||||
ofs = (((ty + FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;
|
||||
ofs += ((tx + FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);
|
||||
|
||||
|
@ -169,7 +169,7 @@
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>../../bin/Win32-visualstudio/GUIEditor.exe</OutputFile>
|
||||
<OutputFile>../../bin/Win64-visualstudio/GUIEditor.exe</OutputFile>
|
||||
<AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
|
Loading…
Reference in New Issue
Block a user