This commit is contained in:
pypy
2020-11-08 16:35:14 +09:00
parent e54315c28c
commit 2160995736
2 changed files with 21 additions and 21 deletions
+17 -20
View File
@@ -74,32 +74,29 @@ namespace VRCX
{
if (type == PaintElementType.View)
{
using (var device = _texture.Device)
using (var context = device.ImmediateContext)
var context = _texture.Device.ImmediateContext;
var dataBox = context.MapSubresource(_texture, 0, MapMode.WriteDiscard, MapFlags.None);
if (dataBox.IsEmpty == false)
{
var dataBox = context.MapSubresource(_texture, 0, MapMode.WriteDiscard, MapFlags.None);
if (dataBox.IsEmpty == false)
var sourcePtr = buffer;
var destinationPtr = dataBox.DataPointer;
var rowPitch = dataBox.RowPitch;
var pitch = width * 4;
if (rowPitch == pitch)
{
var sourcePtr = buffer;
var destinationPtr = dataBox.DataPointer;
var rowPitch = dataBox.RowPitch;
var pitch = width * 4;
if (rowPitch == pitch)
WinApi.CopyMemory(destinationPtr, sourcePtr, (uint)(width * height * 4));
}
else
{
for (var i = height; i > 0; --i)
{
WinApi.CopyMemory(destinationPtr, sourcePtr, (uint)(width * height * 4));
}
else
{
for (var i = height; i > 0; --i)
{
WinApi.CopyMemory(destinationPtr, sourcePtr, (uint)pitch);
sourcePtr += pitch;
destinationPtr += rowPitch;
}
WinApi.CopyMemory(destinationPtr, sourcePtr, (uint)pitch);
sourcePtr += pitch;
destinationPtr += rowPitch;
}
}
context.UnmapSubresource(_texture, 0);
}
context.UnmapSubresource(_texture, 0);
}
}
+4 -1
View File
@@ -41,7 +41,10 @@ namespace VRCX
// 메모리 릭 때문에 미리 생성해놓고 계속 사용함
public static void Init()
{
m_Device = new Device(DriverType.Hardware, DeviceCreationFlags.SingleThreaded | DeviceCreationFlags.BgraSupport);
m_Device = new Device(
DriverType.Hardware,
DeviceCreationFlags.BgraSupport
);
m_Texture1 = new Texture2D(m_Device, new Texture2DDescription()
{
Width = 512,