|
|
@@ -120,17 +120,17 @@ void Text3D::UpdateGeometry(const FrameInfo& frame)
|
|
|
geometry->SetDrawRange(TRIANGLE_LIST, 0, 0, uiBatches_[i].vertexStart_, (uiBatches_[i].vertexEnd_ -
|
|
|
uiBatches_[i].vertexStart_) / UI_VERTEX_SIZE);
|
|
|
}
|
|
|
-
|
|
|
- if (uiVertexData_.Size())
|
|
|
- {
|
|
|
- unsigned vertexCount = uiVertexData_.Size() / UI_VERTEX_SIZE;
|
|
|
- if (vertexBuffer_->GetVertexCount() != vertexCount)
|
|
|
- vertexBuffer_->SetSize(vertexCount, MASK_POSITION | MASK_COLOR | MASK_TEXCOORD1);
|
|
|
- vertexBuffer_->SetData(&uiVertexData_[0]);
|
|
|
- }
|
|
|
-
|
|
|
- geometryDirty_ = false;
|
|
|
}
|
|
|
+
|
|
|
+ if ((geometryDirty_ || vertexBuffer_->IsDataLost()) && uiVertexData_.Size())
|
|
|
+ {
|
|
|
+ unsigned vertexCount = uiVertexData_.Size() / UI_VERTEX_SIZE;
|
|
|
+ if (vertexBuffer_->GetVertexCount() != vertexCount)
|
|
|
+ vertexBuffer_->SetSize(vertexCount, MASK_POSITION | MASK_COLOR | MASK_TEXCOORD1);
|
|
|
+ vertexBuffer_->SetData(&uiVertexData_[0]);
|
|
|
+ }
|
|
|
+
|
|
|
+ geometryDirty_ = false;
|
|
|
}
|
|
|
|
|
|
UpdateGeometryType Text3D::GetUpdateGeometryType()
|