float asFloat (void) const;
double asDouble (void) const;
- inline int signBit (void) const { return (m_value >> (ExponentBits+MantissaBits)) & 1; }
+ inline int signBit (void) const { return (int)(m_value >> (ExponentBits+MantissaBits)) & 1; }
inline StorageType exponentBits (void) const { return (m_value >> MantissaBits) & ((StorageType(1)<<ExponentBits)-1); }
inline StorageType mantissaBits (void) const { return m_value & ((StorageType(1)<<MantissaBits)-1); }
// Handles the typical notation for zero (min exponent, mantissa 0). Note that the exponent usually used exponent (-ExponentBias) for zero/subnormals is not used.
// Instead zero/subnormals have the (normally implicit) leading mantissa bit set to zero.
const bool isDenormOrZero = (exponent == 1 - ExponentBias) && (mantissa >> MantissaBits == 0);
- const StorageType s = StorageType(sign < 0 ? 1 : 0) << (ExponentBits+MantissaBits);
+ const StorageType s = StorageType(StorageType(sign < 0 ? 1 : 0) << StorageType(ExponentBits+MantissaBits));
const StorageType exp = (isShorthandZero || isDenormOrZero) ? StorageType(0) : StorageType(exponent + ExponentBias);
DE_ASSERT(sign == +1 || sign == -1);
if (name)
return stream << name;
else
- return stream << Hex<NumBytes*2>(m_value);
+ return stream << Hex<NumBytes*2>((deUint64)m_value);
}
std::string toString (void) const
if (name)
return std::string(name);
else
- return Hex<NumBytes*2>(m_value).toString();
+ return Hex<NumBytes*2>((deUint64)m_value).toString();
}
private:
DE_ASSERT(deInRange32(g, 0, 255));
DE_ASSERT(deInRange32(b, 0, 255));
DE_ASSERT(deInRange32(a, 0, 255));
- m_value = (a << ALPHA_SHIFT) | (r << RED_SHIFT) | (g << GREEN_SHIFT) | (b << BLUE_SHIFT);
+ m_value = ((deUint32)a << ALPHA_SHIFT) | ((deUint32)r << RED_SHIFT) | ((deUint32)g << GREEN_SHIFT) | ((deUint32)b << BLUE_SHIFT);
}
explicit RGBA (deUint32 val)
explicit RGBA (const Vec4& v);
- void setRed (int v) { DE_ASSERT(deInRange32(v, 0, 255)); m_value = (m_value & ~(0xFF << RED_SHIFT)) | (v << RED_SHIFT); }
- void setGreen (int v) { DE_ASSERT(deInRange32(v, 0, 255)); m_value = (m_value & ~(0xFF << GREEN_SHIFT)) | (v << GREEN_SHIFT); }
- void setBlue (int v) { DE_ASSERT(deInRange32(v, 0, 255)); m_value = (m_value & ~(0xFF << BLUE_SHIFT)) | (v << BLUE_SHIFT); }
- void setAlpha (int v) { DE_ASSERT(deInRange32(v, 0, 255)); m_value = (m_value & ~(0xFF << ALPHA_SHIFT)) | (v << ALPHA_SHIFT); }
- int getRed (void) const { return (m_value >> RED_SHIFT) & 0xFF; }
- int getGreen (void) const { return (m_value >> GREEN_SHIFT) & 0xFF; }
- int getBlue (void) const { return (m_value >> BLUE_SHIFT) & 0xFF; }
- int getAlpha (void) const { return (m_value >> ALPHA_SHIFT) & 0xFF; }
+ void setRed (int v) { DE_ASSERT(deInRange32(v, 0, 255)); m_value = (m_value & ~((deUint32)0xFFu << RED_SHIFT)) | ((deUint32)v << RED_SHIFT); }
+ void setGreen (int v) { DE_ASSERT(deInRange32(v, 0, 255)); m_value = (m_value & ~((deUint32)0xFFu << GREEN_SHIFT)) | ((deUint32)v << GREEN_SHIFT); }
+ void setBlue (int v) { DE_ASSERT(deInRange32(v, 0, 255)); m_value = (m_value & ~((deUint32)0xFFu << BLUE_SHIFT)) | ((deUint32)v << BLUE_SHIFT); }
+ void setAlpha (int v) { DE_ASSERT(deInRange32(v, 0, 255)); m_value = (m_value & ~((deUint32)0xFFu << ALPHA_SHIFT)) | ((deUint32)v << ALPHA_SHIFT); }
+ int getRed (void) const { return (int)((m_value >> (deUint32)RED_SHIFT) & 0xFFu); }
+ int getGreen (void) const { return (int)((m_value >> (deUint32)GREEN_SHIFT) & 0xFFu); }
+ int getBlue (void) const { return (int)((m_value >> (deUint32)BLUE_SHIFT) & 0xFFu); }
+ int getAlpha (void) const { return (int)((m_value >> (deUint32)ALPHA_SHIFT) & 0xFFu); }
deUint32 getPacked (void) const { return m_value; }
bool isBelowThreshold (RGBA thr) const { return (getRed() <= thr.getRed()) && (getGreen() <= thr.getGreen()) && (getBlue() <= thr.getBlue()) && (getAlpha() <= thr.getAlpha()); }
SeedBuilder& operator<< (SeedBuilder& builder, deUint8 value)
{
- const deInt8 val = value ^ 140u;
+ const deUint8 val = value ^ 140u;
builder.feed(sizeof(val), &val);
return builder;
~TextureLevelPyramid(void);
const TextureFormat& getFormat (void) const { return m_format; }
- bool isLevelEmpty (int levelNdx) const { return m_data[levelNdx].empty(); }
-
int getNumLevels (void) const { return (int)m_access.size(); }
- const ConstPixelBufferAccess& getLevel (int ndx) const { return m_access[ndx]; }
- const PixelBufferAccess& getLevel (int ndx) { return m_access[ndx]; }
+
+ bool isLevelEmpty (int levelNdx) const { DE_ASSERT(de::inBounds(levelNdx, 0, getNumLevels())); return m_data[(size_t)levelNdx].empty(); }
+ const ConstPixelBufferAccess& getLevel (int levelNdx) const { DE_ASSERT(de::inBounds(levelNdx, 0, getNumLevels())); return m_access[(size_t)levelNdx]; }
+ const PixelBufferAccess& getLevel (int levelNdx) { DE_ASSERT(de::inBounds(levelNdx, 0, getNumLevels())); return m_access[(size_t)levelNdx]; }
const ConstPixelBufferAccess* getLevels (void) const { return &m_access[0]; }
const PixelBufferAccess* getLevels (void) { return &m_access[0]; }
int getSize (void) const { return m_size; }
int getNumLevels (void) const { return (int)m_access[0].size(); }
- const ConstPixelBufferAccess& getLevelFace (int ndx, CubeFace face) const { return m_access[face][ndx]; }
- const PixelBufferAccess& getLevelFace (int ndx, CubeFace face) { return m_access[face][ndx]; }
+ const ConstPixelBufferAccess& getLevelFace (int ndx, CubeFace face) const { DE_ASSERT(de::inBounds(ndx, 0, getNumLevels())); return m_access[face][(size_t)ndx]; }
+ const PixelBufferAccess& getLevelFace (int ndx, CubeFace face) { DE_ASSERT(de::inBounds(ndx, 0, getNumLevels())); return m_access[face][(size_t)ndx]; }
void allocLevel (CubeFace face, int levelNdx);
void clearLevel (CubeFace face, int levelNdx);
- bool isLevelEmpty (CubeFace face, int levelNdx) const { return m_data[face][levelNdx].empty(); }
+ bool isLevelEmpty (CubeFace face, int levelNdx) const { DE_ASSERT(de::inBounds(levelNdx, 0, getNumLevels())); return m_data[face][(size_t)levelNdx].empty(); }
Vec4 sample (const Sampler& sampler, float s, float t, float p, float lod) const;
float sampleCompare (const Sampler& sampler, float ref, float s, float t, float r, float lod) const;
m_thread.pushMessage(m_stream.str());
}
-Thread::Thread (int seed)
+Thread::Thread (deUint32 seed)
: m_random (seed)
, m_status (THREADSTATUS_NOT_STARTED)
{
void DataBlock::setData (size_t size, const void* data)
{
m_data = std::vector<deUint8>(size);
- deMemcpy(&(m_data[0]), data, (int)size);
+ deMemcpy(&(m_data[0]), data, size);
}
CompareData::CompareData (SharedPtr<DataBlock> a, SharedPtr<DataBlock> b)
THREADSTATUS_FAILED,
THREADSTATUS_NOT_SUPPORTED
};
- Thread (int seed);
+ Thread (deUint32 seed);
~Thread (void);
virtual void init (void) {} //!< Called first before any Operation
for (iter = 0; iter < NUM_ITERS; iter++)
{
- const deUint32 EPS = 1 << (DE_RCP_FRAC_BITS - NUM_ACCURATE_BITS);
+ const deUint32 EPS = 1u << (DE_RCP_FRAC_BITS - NUM_ACCURATE_BITS);
deUint32 val = (deRandom_getUint32(&rnd) & ((1u<<numBits)-1)) | (1u<<numBits);
deUint32 ref = (deUint32)(((1.0f / (double)val) * (double)(1<<DE_RCP_FRAC_BITS)) * (double)(1u<<numBits));
#if defined(DE_DEBUG)
/* Fill with garbage to hopefully catch dangling pointer bugs easier. */
deUint8* dataPtr = (deUint8*)(page + 1);
- memset(dataPtr, 0xCD, page->capacity);
+ memset(dataPtr, 0xCD, (size_t)page->capacity);
#endif
deFree(page);
}
#endif
DE_ASSERT(curPage);
- DE_ASSERT(deIsPowerOfTwo32(alignBytes));
+ DE_ASSERT(deIsPowerOfTwo32((int)alignBytes));
{
void* curPagePtr = (void*)((deUint8*)(curPage + 1) + curPage->bytesAllocated);
void* alignedPtr = deAlignPtr(curPagePtr, alignBytes);
return DE_FALSE;
}
- DE_ASSERT(channels != 0 && (channels & ~DE_SOCKETCHANNEL_BOTH) == 0);
+ DE_ASSERT(channels != 0 && (channels & ~(deUint32)DE_SOCKETCHANNEL_BOTH) == 0);
/* Don't attempt to close already closed channels on partially open socket. */
channels &= sock->openChannels;
case RenderConfig::VISIBILITY_VISIBLE: return WindowParams::VISIBILITY_VISIBLE;
case RenderConfig::VISIBILITY_FULLSCREEN: return WindowParams::VISIBILITY_FULLSCREEN;
default:
- DE_ASSERT(visibility == (RenderConfig::Visibility)RenderConfig::DONT_CARE);
+ DE_ASSERT((int)visibility == RenderConfig::DONT_CARE);
return WindowParams::VISIBILITY_DONT_CARE;
}
}
computeRandomValueRangeForInfElements(state, m_valueRange.asAccess());
- DE_ASSERT(state.getVariableManager().hasEntry(IsWritableIntersectingEntry(m_valueRange)));
+ DE_ASSERT(state.getVariableManager().hasEntry(IsWritableIntersectingEntry(m_valueRange.asAccess())));
}
}
if (!state.verifyValidity(testCtx))
return;
- const GLboolean expectedGLState = reference ? GL_TRUE : GL_FALSE;
+ const GLboolean expectedGLState = reference != 0.0f ? GL_TRUE : GL_FALSE;
if (state != expectedGLState)
{
const GLboolean referenceAsGLBoolean[] =
{
- reference0 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
- reference1 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference0 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference1 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
};
StateQueryMemoryWriteGuard<GLboolean[2]> boolVector2;
const GLboolean referenceAsGLBoolean[] =
{
- reference0 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
- reference1 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
- reference2 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
- reference3 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference0 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference1 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference2 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference3 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
};
StateQueryMemoryWriteGuard<GLboolean[4]> boolVector4;
if (!state.verifyValidity(testCtx))
return;
- const GLboolean expectedGLState = reference ? GL_TRUE : GL_FALSE;
+ const GLboolean expectedGLState = reference != 0.0f ? GL_TRUE : GL_FALSE;
if (state != expectedGLState)
{
const GLboolean referenceAsGLBoolean[] =
{
- reference0 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
- reference1 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference0 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference1 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
};
if (boolVector2[0] != referenceAsGLBoolean[0] ||
const GLboolean referenceAsGLBoolean[] =
{
- reference0 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
- reference1 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
- reference2 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
- reference3 ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference0 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference1 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference2 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
+ reference3 != 0.0f ? GLboolean(GL_TRUE) : GLboolean(GL_FALSE),
};
if (boolVector4[0] != referenceAsGLBoolean[0] ||
// upload to 25% - 75% range
target = GL_ELEMENT_ARRAY_BUFFER;
- size = (glw::GLsizeiptr)deAlign32((glw::GLsizeiptr)((int)(indexData.size() * sizeof(deUint32))) / 2, 4);
+ size = (glw::GLsizeiptr)deAlign32((deInt32)(indexData.size() * sizeof(deUint32)) / 2, 4);
offset = (glw::GLintptr)deAlign32((int)size / 2, 4);
source = (const deUint8*)&indexData[0] + offset;
}
{
// upload to 25% - 75% range
target = GL_ELEMENT_ARRAY_BUFFER;
- size = (glw::GLsizeiptr)deAlign32((glw::GLsizeiptr)((int)(indexData.size() * sizeof(deUint32))) / 2, 4);
+ size = (glw::GLsizeiptr)deAlign32((deInt32)(indexData.size() * sizeof(deUint32)) / 2, 4);
offset = (glw::GLintptr)deAlign32((int)size / 2, 4);
source = (const deUint8*)&indexData[0] + offset;
}
<< tcu::TestLog::EndMessage;
// can't fail with reasonable values of numSamples
- DE_ASSERT(deFloatCeil(ratio * m_numTargetSamples) == float(sampleCount));
+ DE_ASSERT(deFloatCeil(ratio * (float)m_numTargetSamples) == float(sampleCount));
}
}
const float& value,
ostream& os)
{
- os << (value ? "true" : "false");
+ os << (value != 0.0f ? "true" : "false");
}
static void doPrintIVal (const FloatFormat&,