本文整理汇总了C++中URHO3D_LOGERROR函数的典型用法代码示例。如果您正苦于以下问题:C++ URHO3D_LOGERROR函数的具体用法?C++ URHO3D_LOGERROR怎么用?C++ URHO3D_LOGERROR使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了URHO3D_LOGERROR函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: URHO3D_LOGERROR
bool TextureCube::SetSize(int size, unsigned format, TextureUsage usage, int multiSample)
{
if (size <= 0)
{
URHO3D_LOGERROR("Zero or negative cube texture size");
return false;
}
if (usage == TEXTURE_DEPTHSTENCIL)
{
URHO3D_LOGERROR("Depth-stencil usage not supported for cube textures");
return false;
}
multiSample = Clamp(multiSample, 1, 16);
if (multiSample > 1 && usage < TEXTURE_RENDERTARGET)
{
URHO3D_LOGERROR("Multisampling is only supported for rendertarget cube textures");
return false;
}
// Delete the old rendersurfaces if any
for (unsigned i = 0; i < MAX_CUBEMAP_FACES; ++i)
{
renderSurfaces_[i].Reset();
faceMemoryUse_[i] = 0;
}
usage_ = usage;
if (usage == TEXTURE_RENDERTARGET)
{
for (unsigned i = 0; i < MAX_CUBEMAP_FACES; ++i)
{
renderSurfaces_[i] = new RenderSurface(this);
#ifdef URHO3D_OPENGL
renderSurfaces_[i]->target_ = GL_TEXTURE_CUBE_MAP_POSITIVE_X + i;
#endif
}
// Nearest filtering by default
filterMode_ = FILTER_NEAREST;
}
if (usage == TEXTURE_RENDERTARGET)
SubscribeToEvent(E_RENDERSURFACEUPDATE, URHO3D_HANDLER(TextureCube, HandleRenderSurfaceUpdate));
else
UnsubscribeFromEvent(E_RENDERSURFACEUPDATE);
width_ = size;
height_ = size;
depth_ = 1;
format_ = format;
multiSample_ = multiSample;
autoResolve_ = multiSample > 1;
return Create();
}
示例2: SetName
bool TmxFile2D::BeginLoad(Deserializer& source)
{
if (GetName().Empty())
SetName(source.GetName());
loadXMLFile_ = new XMLFile(context_);
if (!loadXMLFile_->Load(source))
{
URHO3D_LOGERROR("Load XML failed " + source.GetName());
loadXMLFile_.Reset();
return false;
}
XMLElement rootElem = loadXMLFile_->GetRoot("map");
if (!rootElem)
{
URHO3D_LOGERROR("Invalid tmx file " + source.GetName());
loadXMLFile_.Reset();
return false;
}
// If we're async loading, request the texture now. Finish during EndLoad().
if (GetAsyncLoadState() == ASYNC_LOADING)
{
for (XMLElement tileSetElem = rootElem.GetChild("tileset"); tileSetElem; tileSetElem = tileSetElem.GetNext("tileset"))
{
// Tile set defined in TSX file
if (tileSetElem.HasAttribute("source"))
{
String source = tileSetElem.GetAttribute("source");
SharedPtr<XMLFile> tsxXMLFile = LoadTSXFile(source);
if (!tsxXMLFile)
return false;
tsxXMLFiles_[source] = tsxXMLFile;
String textureFilePath =
GetParentPath(GetName()) + tsxXMLFile->GetRoot("tileset").GetChild("image").GetAttribute("source");
GetSubsystem<ResourceCache>()->BackgroundLoadResource<Texture2D>(textureFilePath, true, this);
}
else
{
String textureFilePath = GetParentPath(GetName()) + tileSetElem.GetChild("image").GetAttribute("source");
GetSubsystem<ResourceCache>()->BackgroundLoadResource<Texture2D>(textureFilePath, true, this);
}
}
for (XMLElement imageLayerElem = rootElem.GetChild("imagelayer"); imageLayerElem;
imageLayerElem = imageLayerElem.GetNext("imagelayer"))
{
String textureFilePath = GetParentPath(GetName()) + imageLayerElem.GetChild("image").GetAttribute("source");
GetSubsystem<ResourceCache>()->BackgroundLoadResource<Texture2D>(textureFilePath, true, this);
}
}
return true;
}
示例3: URHO3D_LOGERROR
bool TextureCube::SetSize(int size, uint32_t format, TextureUsage usage, int multiSample)
{
if (size <= 0)
{
URHO3D_LOGERROR("Zero or negative cube texture size");
return false;
}
if (usage == TEXTURE_DEPTHSTENCIL)
{
URHO3D_LOGERROR("Depth-stencil usage not supported for cube textures");
return false;
}
multiSample = Clamp(multiSample, 1, 16);
if (multiSample > 1 && usage < TEXTURE_RENDERTARGET)
{
URHO3D_LOGERROR("Multisampling is only supported for rendertarget cube textures");
return false;
}
// Delete the old rendersurfaces if any
for (unsigned i = 0; i < MAX_CUBEMAP_FACES; ++i)
{
renderSurfaces_[i].Reset();
faceMemoryUse_[i] = 0;
}
usage_ = usage;
if (usage == TEXTURE_RENDERTARGET)
{
for (unsigned i = 0; i < MAX_CUBEMAP_FACES; ++i)
{
renderSurfaces_[i] = new RenderSurface(this);
renderSurfaces_[i]->target_ = GL_TEXTURE_CUBE_MAP_POSITIVE_X + i;
}
// Nearest filtering by default
filterMode_ = FILTER_NEAREST;
}
if (usage == TEXTURE_RENDERTARGET)
g_graphicsSignals.renderSurfaceUpdate.Connect(this,&TextureCube::HandleRenderSurfaceUpdate);
else
g_graphicsSignals.renderSurfaceUpdate.Disconnect(this,&TextureCube::HandleRenderSurfaceUpdate);
width_ = size;
height_ = size;
format_ = format;
depth_ = 1;
multiSample_ = multiSample;
autoResolve_ = multiSample > 1;
return Create();
}
示例4: URHO3D_LOGERROR
bool XMLFile::BeginLoad(Deserializer& source)
{
unsigned dataSize = source.GetSize();
if (!dataSize && !source.GetName().Empty())
{
URHO3D_LOGERROR("Zero sized XML data in " + source.GetName());
return false;
}
SharedArrayPtr<char> buffer(new char[dataSize]);
if (source.Read(buffer.Get(), dataSize) != dataSize)
return false;
if (!document_->load_buffer(buffer.Get(), dataSize))
{
URHO3D_LOGERROR("Could not parse XML data from " + source.GetName());
document_->reset();
return false;
}
XMLElement rootElem = GetRoot();
String inherit = rootElem.GetAttribute("inherit");
if (!inherit.Empty())
{
// The existence of this attribute indicates this is an RFC 5261 patch file
ResourceCache* cache = GetSubsystem<ResourceCache>();
// If being async loaded, GetResource() is not safe, so use GetTempResource() instead
XMLFile* inheritedXMLFile = GetAsyncLoadState() == ASYNC_DONE ? cache->GetResource<XMLFile>(inherit) :
cache->GetTempResource<XMLFile>(inherit);
if (!inheritedXMLFile)
{
URHO3D_LOGERRORF("Could not find inherited XML file: %s", inherit.CString());
return false;
}
// Patch this XMLFile and leave the original inherited XMLFile as it is
pugi::xml_document* patchDocument = document_;
document_ = new pugi::xml_document();
document_->reset(*inheritedXMLFile->document_);
Patch(rootElem);
delete patchDocument;
// Store resource dependencies so we know when to reload/repatch when the inherited resource changes
cache->StoreResourceDependency(this, inherit);
// Approximate patched data size
dataSize += inheritedXMLFile->GetMemoryUse();
}
// Note: this probably does not reflect internal data structure size accurately
SetMemoryUse(dataSize);
return true;
}
示例5: Release
bool Texture3D::Create()
{
Release();
#ifdef GL_ES_VERSION_2_0
URHO3D_LOGERROR("Failed to create 3D texture, currently unsupported on OpenGL ES 2");
return false;
#else
if (!graphics_ || !width_ || !height_ || !depth_)
return false;
if (graphics_->IsDeviceLost())
{
URHO3D_LOGWARNING("Texture creation while device is lost");
return true;
}
unsigned format = GetSRGB() ? GetSRGBFormat(format_) : format_;
unsigned externalFormat = GetExternalFormat(format_);
unsigned dataType = GetDataType(format_);
glGenTextures(1, &object_.name_);
// Ensure that our texture is bound to OpenGL texture unit 0
graphics_->SetTextureForUpdate(this);
// If not compressed, create the initial level 0 texture with null data
bool success = true;
if (!IsCompressed())
{
glGetError();
glTexImage3D(target_, 0, format, width_, height_, depth_, 0, externalFormat, dataType, 0);
if (glGetError())
{
URHO3D_LOGERROR("Failed to create texture");
success = false;
}
}
// Set mipmapping
levels_ = CheckMaxLevels(width_, height_, depth_, requestedLevels_);
glTexParameteri(target_, GL_TEXTURE_BASE_LEVEL, 0);
glTexParameteri(target_, GL_TEXTURE_MAX_LEVEL, levels_ - 1);
// Set initial parameters, then unbind the texture
UpdateParameters();
graphics_->SetTexture(0, 0);
return success;
#endif
}
示例6: Release
bool Texture3D::Create()
{
Release();
#ifdef GL_ES_VERSION_2_0
URHO3D_LOGERROR("Failed to create 3D texture, currently unsupported on OpenGL ES 2");
return false;
#else
if (!graphics_ || !width_ || !height_ || !depth_)
return false;
if (graphics_->IsDeviceLost())
{
URHO3D_LOGWARNING("Texture creation while device is lost");
return true;
}
unsigned format = GetSRGB() ? GetSRGBFormat(format_) : format_;
unsigned externalFormat = GetExternalFormat(format_);
unsigned dataType = GetDataType(format_);
glGenTextures(1, &object_);
// Ensure that our texture is bound to OpenGL texture unit 0
graphics_->SetTextureForUpdate(this);
// If not compressed, create the initial level 0 texture with null data
bool success = true;
if (!IsCompressed())
{
glGetError();
glTexImage3D(target_, 0, format, width_, height_, depth_, 0, externalFormat, dataType, 0);
if (glGetError())
{
URHO3D_LOGERROR("Failed to create texture");
success = false;
}
}
// Set mipmapping
levels_ = requestedLevels_;
if (!levels_)
{
unsigned maxSize = (unsigned)Max(Max((int)width_, (int)height_), (int)depth_);
while (maxSize)
{
maxSize >>= 1;
++levels_;
}
}
示例7: SetData
bool VertexBuffer::SetDataRange(const void* data, unsigned start, unsigned count, bool discard)
{
if (start == 0 && count == vertexCount_)
return SetData(data);
if (!data)
{
URHO3D_LOGERROR("Null pointer for vertex buffer data");
return false;
}
if (!vertexSize_)
{
URHO3D_LOGERROR("Vertex elements not defined, can not set vertex buffer data");
return false;
}
if (start + count > vertexCount_)
{
URHO3D_LOGERROR("Illegal range for setting new vertex buffer data");
return false;
}
if (!count)
return true;
if (shadowData_ && shadowData_.Get() + start * vertexSize_ != data)
memcpy(shadowData_.Get() + start * vertexSize_, data, count * vertexSize_);
if (object_)
{
if (graphics_->IsDeviceLost())
{
URHO3D_LOGWARNING("Vertex buffer data assignment while device is lost");
dataPending_ = true;
return true;
}
void* hwData = MapBuffer(start, count, discard);
if (hwData)
{
memcpy(hwData, data, count * vertexSize_);
UnmapBuffer();
}
else
return false;
}
return true;
}
示例8: URHO3D_LOGERROR
void RaycastVehicle::SetWheelDataAttr(const VariantVector& value)
{
if (!vehicleData_)
{
URHO3D_LOGERROR("RaycastVehicle: vehicleData doesn't exist");
return;
}
if (value.Size() < 2)
{
URHO3D_LOGERROR("RaycastVehicle: Incorrect vehicleData");
return;
}
loadedWheelData_ = value;
}
示例9: SetData
bool VertexBuffer::SetDataRange(const void* data, unsigned start, unsigned count, bool discard)
{
if (start == 0 && count == vertexCount_)
return SetData(data);
if (!data)
{
URHO3D_LOGERROR("Null pointer for vertex buffer data");
return false;
}
if (!vertexSize_)
{
URHO3D_LOGERROR("Vertex elements not defined, can not set vertex buffer data");
return false;
}
if (start + count > vertexCount_)
{
URHO3D_LOGERROR("Illegal range for setting new vertex buffer data");
return false;
}
if (!count)
return true;
if (shadowData_ && shadowData_.Get() + start * vertexSize_ != data)
memcpy(shadowData_.Get() + start * vertexSize_, data, count * vertexSize_);
if (object_)
{
if (!graphics_->IsDeviceLost())
{
graphics_->SetVBO(object_);
if (!discard || start != 0)
glBufferSubData(GL_ARRAY_BUFFER, start * vertexSize_, count * vertexSize_, data);
else
glBufferData(GL_ARRAY_BUFFER, count * vertexSize_, data, dynamic_ ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW);
}
else
{
URHO3D_LOGWARNING("Vertex buffer data assignment while device is lost");
dataPending_ = true;
}
}
return true;
}
示例10: LoadInfo
bool TmxImageLayer2D::Load(const XMLElement& element, const TileMapInfo2D& info)
{
LoadInfo(element);
XMLElement imageElem = element.GetChild("image");
if (!imageElem)
return false;
position_ = Vector2(0.0f, info.GetMapHeight());
source_ = imageElem.GetAttribute("source");
String textureFilePath = GetParentPath(tmxFile_->GetName()) + source_;
ResourceCache* cache = tmxFile_->GetSubsystem<ResourceCache>();
SharedPtr<Texture2D> texture(cache->GetResource<Texture2D>(textureFilePath));
if (!texture)
{
URHO3D_LOGERROR("Could not load texture " + textureFilePath);
return false;
}
sprite_ = new Sprite2D(tmxFile_->GetContext());
sprite_->SetTexture(texture);
sprite_->SetRectangle(IntRect(0, 0, texture->GetWidth(), texture->GetHeight()));
// Set image hot spot at left top
sprite_->SetHotSpot(Vector2(0.0f, 1.0f));
if (element.HasChild("properties"))
LoadPropertySet(element.GetChild("properties"));
return true;
}
示例11: URHO3D_LOGERROR
void Skeleton::SetRootBoneIndex(unsigned index)
{
if (index < bones_.Size())
rootBoneIndex_ = index;
else
URHO3D_LOGERROR("Root bone index out of bounds");
}
示例12: data
bool Sound::LoadOggVorbis(Deserializer& source)
{
unsigned dataSize = source.GetSize();
SharedArrayPtr<signed char> data(new signed char[dataSize]);
source.Read(data.Get(), dataSize);
// Check for validity of data
int error;
stb_vorbis* vorbis = stb_vorbis_open_memory((unsigned char*)data.Get(), dataSize, &error, nullptr);
if (!vorbis)
{
URHO3D_LOGERROR("Could not read Ogg Vorbis data from " + source.GetName());
return false;
}
// Store length, frequency and stereo flag
stb_vorbis_info info = stb_vorbis_get_info(vorbis);
compressedLength_ = stb_vorbis_stream_length_in_seconds(vorbis);
frequency_ = info.sample_rate;
stereo_ = info.channels > 1;
stb_vorbis_close(vorbis);
data_ = data;
dataSize_ = dataSize;
sixteenBit_ = true;
compressed_ = true;
SetMemoryUse(dataSize);
return true;
}
示例13: OpenInternal
bool File::Open(PackageFile* package, const String& fileName)
{
if (!package)
return false;
const PackageEntry* entry = package->GetEntry(fileName);
if (!entry)
return false;
bool success = OpenInternal(package->GetName(), FILE_READ, true);
if (!success)
{
URHO3D_LOGERROR("Could not open package file " + fileName);
return false;
}
fileName_ = fileName;
offset_ = entry->offset_;
checksum_ = entry->checksum_;
size_ = entry->size_;
compressed_ = package->IsCompressed();
// Seek to beginning of package entry's file data
SeekInternal(offset_);
return true;
}
示例14: URHO3D_LOGERROR
void Graphics::SetExternalWindow(void* window)
{
if (!window_)
externalWindow_ = window;
else
URHO3D_LOGERROR("Window already opened, can not set external window");
}
示例15: switch
Variant ValueAnimation::SubstractAndMultiply(const Variant& value1, const Variant& value2, float t) const
{
switch (valueType_)
{
case VAR_FLOAT:
return (value1.GetFloat() - value2.GetFloat()) * t;
case VAR_VECTOR2:
return (value1.GetVector2() - value2.GetVector2()) * t;
case VAR_VECTOR3:
return (value1.GetVector3() - value2.GetVector3()) * t;
case VAR_VECTOR4:
return (value1.GetVector4() - value2.GetVector4()) * t;
case VAR_QUATERNION:
return (value1.GetQuaternion() - value2.GetQuaternion()) * t;
case VAR_COLOR:
return (value1.GetColor() - value2.GetColor()) * t;
case VAR_DOUBLE:
return (value1.GetDouble() - value2.GetDouble()) * t;
default:
URHO3D_LOGERROR("Invalid value type for spline interpolation's substract and multiply operation");
return Variant::EMPTY;
}
}