\r
--------------------------\r
Changes in 1.9 (not yet released)\r
+- No longer try to set WM_QUIT when using an external Window on Win32. \r
+ Thx @Marko Mahnic for the patch (https://sourceforge.net/p/irrlicht/bugs/449)\r
+- ply meshloader now also supports textures with uv-labels named texture_u/texture_v. \r
+ Thx @acy for bugreport and test-model (http://irrlicht.sourceforge.net/forum/viewtopic.php?f=4&t=52646)\r
- Fix potential reading/writing 1 byte behind it's own buffer in PLY loader.\r
Thanks @wolfgang for report and patch (http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=52627&p=305573#p305573)\r
- ICursorControl::isVisible is now always returning the flag set in setVisible. \r
model1->setPosition(core::vector3df(100,40,-80));\r
model1->setScale(core::vector3df(2,2,2));\r
model1->setMD2Animation(scene::EMAT_STAND);\r
- model1->setMaterialFlag(video::EMF_LIGHTING, false);\r
+ model1->setMaterialFlag(video::EMF_LIGHTING, true);\r
+ model1->getMaterial(0).Shininess = 40.f;\r
model1->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, true);\r
model1->setMaterialType(video::EMT_SPHERE_MAP);\r
model1->setAutomaticCulling(scene::EAC_OFF); // avoid shadows not updating\r
scene::IShadowVolumeSceneNode * shadVol = model1->addShadowVolumeSceneNode();\r
- shadVol->setOptimization(scene::ESV_NONE); // Sydney has broken shadows otherwise\r
+ if(shadVol) shadVol->setOptimization(scene::ESV_NONE); // Sydney has broken shadows otherwise\r
}\r
\r
model2 = sm->addAnimatedMeshSceneNode(mesh);\r
model2->setMaterialFlag(video::EMF_NORMALIZE_NORMALS, true);\r
model2->setAutomaticCulling(scene::EAC_OFF); // avoid shadows not updating\r
scene::IShadowVolumeSceneNode * shadVol = model2->addShadowVolumeSceneNode();\r
- shadVol->setOptimization(scene::ESV_NONE); // Sydney has broken shadows otherwise\r
+ if (shadVol) shadVol->setOptimization(scene::ESV_NONE); // Sydney has broken shadows otherwise\r
}\r
}\r
\r
//! Sets text justification mode\r
/** \param horizontal: EGUIA_UPPERLEFT for left justified (default),\r
EGUIA_LOWEERRIGHT for right justified, or EGUIA_CENTER for centered text.\r
- \param vertical: EGUIA_UPPERLEFT to align with top edge,\r
- EGUIA_LOWEERRIGHT for bottom edge, or EGUIA_CENTER for centered text (default). */\r
+ \param vertical: EGUIA_UPPERLEFT to align with top edge (default),\r
+ EGUIA_LOWEERRIGHT for bottom edge, or EGUIA_CENTER for centered text. */\r
virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) = 0;\r
\r
//! Enables or disables word wrap for using the static text as multiline text control.\r
\param format The color format of the render target. Floating point formats are supported.\r
\return Pointer to the created texture or 0 if the texture\r
could not be created. This pointer should not be dropped. See\r
- IReferenceCounted::drop() for more information. */\r
+ IReferenceCounted::drop() for more information.\r
+ You may want to remove it from driver texture cache with removeTexture if you no longer need it.\r
+ */\r
virtual ITexture* addRenderTargetTexture(const core::dimension2d<u32>& size,\r
const io::path& name = "rt", const ECOLOR_FORMAT format = ECF_UNKNOWN) =0;\r
\r
other flags can be changed, though some might have to effect\r
in most cases.\r
Please note that you have to enable/disable this effect with\r
- enableInitMaterial2D(). This effect is costly, as it increases\r
+ enableMaterial2D(). This effect is costly, as it increases\r
the number of state changes considerably. Always reset the\r
values when done.\r
\return Material reference which should be altered to reflect\r
\r
//! returns if a equals b, taking possible rounding errors into account\r
template <class T>\r
- inline bool equals(const T a, const T b, const T tolerance = roundingError<T>()) \r
+ inline bool equals(const T a, const T b, const T tolerance = roundingError<T>())\r
{\r
return (a + tolerance >= b) && (a - tolerance <= b);\r
}\r
return rec;\r
*/\r
/*\r
- register u32 x = 0x7F000000 - IR ( p );\r
+ u32 x = 0x7F000000 - IR ( p );\r
const f32 r = FR ( x );\r
return r * (2.0f - p * r);\r
*/\r
f18 src_x = f18_zero;\r
for (u32 dx = 0; dx < job->width; ++dx, src_x += wscale)\r
{\r
- register u16 c0 = src[f18_floor(src_x)];\r
+ u16 c0 = src[f18_floor(src_x)];\r
if (0 == (c0 & 0x8000))\r
continue;\r
\r
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];
//! notifies the device that it should close itself\r
void CIrrDeviceWin32::closeDevice()\r
{\r
- MSG msg;\r
- PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);\r
- PostQuitMessage(0);\r
- PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);\r
if (!ExternalWindow)\r
{\r
+ MSG msg;\r
+ PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);\r
+ PostQuitMessage(0);\r
+ PeekMessage(&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);\r
DestroyWindow(HWnd);\r
const fschar_t* ClassName = __TEXT("CIrrDeviceWin32");\r
HINSTANCE hInstance = GetModuleHandle(0);\r
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:\r
glGetIntegerv(GL_TEXTURE_BINDING_CUBE_MAP, &bound);\r
break;\r
+#ifdef GL_VERSION_3_1\r
case GL_TEXTURE_RECTANGLE:\r
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE, &bound);\r
break;\r
+#elif defined(GL_ARB_texture_rectangle)\r
+ case GL_TEXTURE_RECTANGLE_ARB:\r
+ glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &bound);\r
+ break;\r
+#endif\r
default:\r
return;\r
}\r
case GL_TEXTURE_CUBE_MAP:\r
glGetIntegerv(GL_TEXTURE_BINDING_CUBE_MAP, &bound);\r
break;\r
+#ifdef GL_VERSION_3_1\r
case GL_TEXTURE_RECTANGLE:\r
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE, &bound);\r
break;\r
+#elif defined(GL_ARB_texture_rectangle)\r
+ case GL_TEXTURE_RECTANGLE_ARB:\r
+ glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &bound);\r
+ break;\r
+#endif\r
default:\r
return;\r
}\r
,GL_TEXTURE_RECTANGLE\r
#elif defined(GL_ARB_texture_rectangle)\r
,GL_TEXTURE_RECTANGLE_ARB\r
-#elif defined(GL_NV_texture_rectangle)\r
- ,GL_TEXTURE_RECTANGLE_NV\r
#endif\r
,GL_TEXTURE_CUBE_MAP\r
#ifdef GL_VERSION_3_0\r
glGetIntegerv(GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB, &bound);\r
break;\r
#endif\r
+#ifdef GL_VERSION_3_1\r
case GL_TEXTURE_RECTANGLE:\r
glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE, &bound);\r
break;\r
+#elif defined(GL_ARB_texture_rectangle)\r
+ case GL_TEXTURE_RECTANGLE_ARB:\r
+ glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &bound);\r
+ break;\r
+#endif\r
default:\r
os::Printer::log("DevSH would like to ask you what are you doing!!??\n",ELL_ERROR);\r
return;\r
for (u32 i=0; i < Element.Properties.size(); ++i)\r
{\r
E_PLY_PROPERTY_TYPE t = Element.Properties[i].Type;\r
+ const core::stringc& name = Element.Properties[i].Name;\r
\r
- if (Element.Properties[i].Name == "x")\r
+ if (name == "x")\r
vert.Pos.X = getFloat(t);\r
- else if (Element.Properties[i].Name == "y")\r
+ else if (name == "y")\r
vert.Pos.Z = getFloat(t);\r
- else if (Element.Properties[i].Name == "z")\r
+ else if (name == "z")\r
vert.Pos.Y = getFloat(t);\r
- else if (Element.Properties[i].Name == "nx")\r
+ else if (name == "nx")\r
{\r
vert.Normal.X = getFloat(t);\r
result=true;\r
}\r
- else if (Element.Properties[i].Name == "ny")\r
+ else if (name == "ny")\r
{\r
vert.Normal.Z = getFloat(t);\r
result=true;\r
}\r
- else if (Element.Properties[i].Name == "nz")\r
+ else if (name == "nz")\r
{\r
vert.Normal.Y = getFloat(t);\r
result=true;\r
}\r
- // there isn't a single convention for the UV, some software like Blender or Assimp uses "st" instead of "uv"\r
- else if (Element.Properties[i].Name == "u" || Element.Properties[i].Name == "s")\r
+ // There isn't a single convention for the UV, some software like Blender or Assimp uses "st" instead of "uv"\r
+ // Not sure which tool creates texture_u/texture_v, but those exist as well.\r
+ else if (name == "u" || name == "s" || name == "texture_u")\r
vert.TCoords.X = getFloat(t);\r
- else if (Element.Properties[i].Name == "v" || Element.Properties[i].Name == "t")\r
+ else if (name == "v" || name == "t" || name == "texture_v")\r
vert.TCoords.Y = getFloat(t);\r
- else if (Element.Properties[i].Name == "red")\r
+ else if (name == "red")\r
{\r
u32 value = Element.Properties[i].isFloat() ? (u32)(getFloat(t)*255.0f) : getInt(t);\r
vert.Color.setRed(value);\r
}\r
- else if (Element.Properties[i].Name == "green")\r
+ else if (name == "green")\r
{\r
u32 value = Element.Properties[i].isFloat() ? (u32)(getFloat(t)*255.0f) : getInt(t);\r
vert.Color.setGreen(value);\r
}\r
- else if (Element.Properties[i].Name == "blue")\r
+ else if (name == "blue")\r
{\r
u32 value = Element.Properties[i].isFloat() ? (u32)(getFloat(t)*255.0f) : getInt(t);\r
vert.Color.setBlue(value);\r
}\r
- else if (Element.Properties[i].Name == "alpha")\r
+ else if (name == "alpha")\r
{\r
u32 value = Element.Properties[i].isFloat() ? (u32)(getFloat(t)*255.0f) : getInt(t);\r
vert.Color.setAlpha(value);\r
\r
for (u32 i=0; i < Element.Properties.size(); ++i)\r
{\r
- if ( (Element.Properties[i].Name == "vertex_indices" ||\r
- Element.Properties[i].Name == "vertex_index") && Element.Properties[i].Type == EPLYPT_LIST)\r
+ const SPLYProperty& property = Element.Properties[i];\r
+ if ( (property.Name == "vertex_indices" || property.Name == "vertex_index")\r
+ && property.Type == EPLYPT_LIST)\r
{\r
// get count\r
- s32 count = getInt(Element.Properties[i].Data.List.CountType);\r
- u32 a = getInt(Element.Properties[i].Data.List.ItemType),\r
- b = getInt(Element.Properties[i].Data.List.ItemType),\r
- c = getInt(Element.Properties[i].Data.List.ItemType);\r
+ s32 count = getInt(property.Data.List.CountType);\r
+ u32 a = getInt(property.Data.List.ItemType),\r
+ b = getInt(property.Data.List.ItemType),\r
+ c = getInt(property.Data.List.ItemType);\r
s32 j = 3;\r
\r
mb->getIndexBuffer().push_back(a);\r
for (; j < count; ++j)\r
{\r
b = c;\r
- c = getInt(Element.Properties[i].Data.List.ItemType);\r
+ c = getInt(property.Data.List.ItemType);\r
mb->getIndexBuffer().push_back(a);\r
mb->getIndexBuffer().push_back(c);\r
mb->getIndexBuffer().push_back(b);\r
}\r
}\r
- else if (Element.Properties[i].Name == "intensity")\r
+ else if (property.Name == "intensity")\r
{\r
// todo: face intensity\r
- skipProperty(Element.Properties[i]);\r
+ skipProperty(property);\r
}\r
else\r
- skipProperty(Element.Properties[i]);\r
+ skipProperty(property);\r
}\r
return true;\r
}\r
\r
REALINLINE size_t CBurningVideoDriver::clipToFrustumTest ( const s4DVertex* v ) const\r
{\r
- register size_t flag;\r
+ size_t flag;\r
f32 test[8];\r
const f32 w = - v->Pos.w;\r
\r
//collect pointer to face vertices\r
VertexCache_get(face);\r
\r
- register size_t clipMask_i;\r
- register size_t clipMask_o;\r
+ size_t clipMask_i;\r
+ size_t clipMask_o;\r
\r
clipMask_i = face[0]->flag;\r
clipMask_o = face[0]->flag;\r
MipMap[0] = new CImage(BURNINGSHADER_COLOR_FORMAT, image->getDimension());\r
#if defined(IRRLICHT_sRGB)\r
MipMap[0]->set_sRGB( (Flags & TEXTURE_IS_LINEAR ) ? 0 : image->get_sRGB() );\r
-#endif \r
+#endif\r
if (!isCompressed)\r
image->copyTo(MipMap[0]);\r
}\r
for (i=1; i < 0 && i < SOFTWARE_DRIVER_2_MIPMAPPING_MAX; ++i)\r
{\r
/*\r
- static u32 color[] = { \r
+ static u32 color[] = {\r
0x30bf7f00,0x3040bf00,0x30bf00bf,0x3000bf00,\r
0x300080bf,0x30bf4000,0x300040bf,0x307f00bf,\r
0x30bf0000,0x3000bfbf,0x304000bf,0x307fbf00,\r
0x8000bf7f,0x80bf0040,0x80bfbf00,0x800000bf\r
};\r
*/\r
- static u32 color[] = { \r
+ static u32 color[] = {\r
0xFFFFFFFF,0xFFFF0000,0xFF00FF00,0xFF0000FF,\r
0xFFFFFF00,0xFF00FFFF,0xFFFF00FF,0xFF0000FF,\r
0xFF0000FF,0xFF0000FF,0xFF0000FF,0xFF0000FF,\r
{\r
ieee754 c;\r
c.f = v;\r
- const register size_t x = c.u;\r
+ const size_t x = c.u;\r
const u32 *table = (u32*)srgb_8bit_to_linear_float;\r
- register u32 y = 0;\r
+ u32 y = 0;\r
y += table[y + 128] <= x ? 128 : 0;\r
y += table[y + 64] <= x ? 64 : 0;\r
y += table[y + 32] <= x ? 32 : 0;\r
if ( dy > dx )\r
{\r
//swap\r
- register s32 t;\r
+ s32 t;\r
t = dx;dx=dy;dy=t;\r
t = xInc0;xInc0=yInc0;yInc0=t;\r
#ifdef USE_ZBUFFER\r
}\r
return ret;\r
//return s32_log2_f32( (f32) x);\r
- //ieee754 _log2;_log2.f = (f32) in; return _log2.fields.exp - 127; \r
+ //ieee754 _log2;_log2.f = (f32) in; return _log2.fields.exp - 127;\r
}\r
\r
#if 0\r
REALINLINE tFixPoint imulFix_tex4(const tFixPoint x, const tFixPoint y)\r
{\r
#ifdef SOFTWARE_DRIVER_2_32BIT\r
- register tFixPoint a = (((tFixPointu)x >> 2)*(((tFixPointu)y + FIX_POINT_ONE) >> 2)) >> (tFixPointu)(FIX_POINT_PRE + 2);\r
+ tFixPoint a = (((tFixPointu)x >> 2)*(((tFixPointu)y + FIX_POINT_ONE) >> 2)) >> (tFixPointu)(FIX_POINT_PRE + 2);\r
#else\r
- register tFixPoint a = (x * (y + FIX_POINT_ONE)) >> (FIX_POINT_PRE + 3);\r
+ tFixPoint a = (x * (y + FIX_POINT_ONE)) >> (FIX_POINT_PRE + 3);\r
#endif\r
- register tFixPoint mask = (a - FIXPOINT_COLOR_MAX) >> 31;\r
+ tFixPoint mask = (a - FIXPOINT_COLOR_MAX) >> 31;\r
return (a & mask) | (FIXPOINT_COLOR_MAX & ~mask);\r
}\r
\r
*/\r
REALINLINE tFixPoint clampfix_maxcolor ( const tFixPoint a)\r
{\r
- register tFixPoint c = (a - FIXPOINT_COLOR_MAX) >> 31;\r
+ tFixPoint c = (a - FIXPOINT_COLOR_MAX) >> 31;\r
return (a & c) | ( FIXPOINT_COLOR_MAX & ~c);\r
}\r
\r
// get video sample plain\r
static inline tVideoSample getTexel_plain ( const sInternalTexture* t, const tFixPointu tx, const tFixPointu ty )\r
{\r
- register size_t ofs;\r
+ size_t ofs;\r
\r
ofs = ( ( ty & t->textureYMask ) >> FIX_POINT_PRE ) << t->pitchlog2;\r
ofs |= ( tx & t->textureXMask ) >> ( FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY );\r
const sInternalTexture* t, const tFixPointu tx, const tFixPointu ty\r
)\r
{\r
- register size_t ofs;\r
+ size_t ofs;\r
\r
ofs = ( ((ty + FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask ) >> FIX_POINT_PRE ) << t->pitchlog2;\r
ofs |= ((tx + FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask ) >> ( FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY );\r
\r
// texel\r
- register tVideoSample t00;\r
+ tVideoSample t00;\r
t00 = *((tVideoSample*)( (u8*) t->data + ofs ));\r
\r
r = (t00 & MASK_R) >> ( SHIFT_R - FIX_POINT_PRE);\r
const sInternalTexture* t, const tFixPointu tx, const tFixPointu ty\r
)\r
{\r
- register size_t ofs;\r
+ size_t ofs;\r
\r
ofs = (((ty+ FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;\r
ofs |= ((tx+ FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);\r
\r
// texel\r
- register tVideoSample t00;\r
+ tVideoSample t00;\r
t00 = *((tVideoSample*)((u8*)t->data + ofs));\r
\r
a = (t00 & MASK_A) >> (SHIFT_A - FIX_POINT_PRE);\r
#if 0\r
if (t->lodFactor > 0)\r
{\r
- register size_t ofs;\r
+ size_t ofs;\r
\r
ofs = (((ty + FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;\r
ofs += ((tx + FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);\r
tFixPointu r11, g11, b11;\r
\r
size_t o0, o1, o2, o3;\r
- register tVideoSample t00;\r
+ tVideoSample t00;\r
\r
//wraps positive (ignoring negative)\r
o0 = (((ty)& t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;\r
b11 = (t00 & MASK_B);\r
\r
\r
- register tFixPointu fracx = tx & FIX_POINT_FRACT_MASK;\r
- register tFixPointu fracy = ty & FIX_POINT_FRACT_MASK;\r
+ tFixPointu fracx = tx & FIX_POINT_FRACT_MASK;\r
+ tFixPointu fracy = ty & FIX_POINT_FRACT_MASK;\r
\r
//w00 w01 w10 w11\r
tFixPointu w[4];\r
if (tex->lodFactor > 1)\r
{\r
//nearest neighbor\r
- register size_t ofs;\r
+ size_t ofs;\r
ofs = (((ty + FIX_POINT_ZERO_DOT_FIVE) & tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;\r
ofs += ((tx + FIX_POINT_ZERO_DOT_FIVE) & tex->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);\r
\r
- register tVideoSample t00;\r
+ tVideoSample t00;\r
t00 = *((tVideoSample*)((u8*)tex->data + ofs));\r
\r
r = (t00 & MASK_R) >> (SHIFT_R - FIX_POINT_PRE);\r
//w00 w01 w10 w11\r
tFixPointu w[4];\r
{\r
- register tFixPointu fracx = tx & FIX_POINT_FRACT_MASK;\r
- register tFixPointu fracy = ty & FIX_POINT_FRACT_MASK;\r
+ tFixPointu fracx = tx & FIX_POINT_FRACT_MASK;\r
+ tFixPointu fracy = ty & FIX_POINT_FRACT_MASK;\r
w[0] = imulFixu(FIX_POINT_ONE - fracx, FIX_POINT_ONE - fracy);\r
w[1] = imulFixu(fracx, FIX_POINT_ONE - fracy);\r
w[2] = imulFixu(FIX_POINT_ONE - fracx, fracy);\r
//wraps positive (ignoring negative)\r
tVideoSample t[4];\r
{\r
- register size_t o0, o1, o2, o3;\r
+ size_t o0, o1, o2, o3;\r
o0 = (((ty) & tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;\r
o1 = (((ty + FIX_POINT_ONE) & tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;\r
o2 = ((tx)& tex->textureXMask) >> (unsigned)(FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);\r
tFixPointu a11, r11, g11, b11;\r
\r
size_t o0, o1, o2, o3;\r
- register tVideoSample t00;\r
+ tVideoSample t00;\r
\r
o0 = (((ty)& tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;\r
o1 = (((ty + FIX_POINT_ONE) & tex->textureYMask) >> FIX_POINT_PRE) << tex->pitchlog2;\r
const sInternalTexture* burning_restrict t, const tFixPointu tx, const tFixPointu ty\r
)\r
{\r
- register size_t ofs;\r
+ size_t ofs;\r
ofs = (((ty + FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;\r
ofs += ((tx + FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);\r
\r
const sInternalTexture* burning_restrict t, const tFixPointu tx, const tFixPointu ty\r
)\r
{\r
- register size_t ofs;\r
+ size_t ofs;\r
ofs = (((ty + FIX_POINT_ZERO_DOT_FIVE) & t->textureYMask) >> FIX_POINT_PRE) << t->pitchlog2;\r
ofs += ((tx + FIX_POINT_ZERO_DOT_FIVE) & t->textureXMask) >> (FIX_POINT_PRE - VIDEO_SAMPLE_GRANULARITY);\r
\r
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
</ClCompile>\r
<Link>\r
- <OutputFile>../../bin/Win32-visualstudio/GUIEditor.exe</OutputFile>\r
+ <OutputFile>../../bin/Win64-visualstudio/GUIEditor.exe</OutputFile>\r
<AdditionalLibraryDirectories>..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
<GenerateDebugInformation>true</GenerateDebugInformation>\r
<SubSystem>Console</SubSystem>\r