Beispiel #1
0
//--------------------------------------------------------------------------
void VeWindows::_SetWindowTitle(Window* pkWindow)
{
	WindowData* pkData = (WindowData*)(VeRefObject*)pkWindow->m_spDriverData;
	VeUInt32 u32Len = MultiByteToWideChar(CP_UTF8, 0, pkWindow->m_kTitle, -1, NULL, 0);
	VeChar16* wszGBK = VeAlloc(VeChar16, u32Len + 1);
	VeZeroMemory(wszGBK, sizeof(VeChar16) * (u32Len + 1));
	MultiByteToWideChar(CP_UTF8, 0, pkWindow->m_kTitle, -1, wszGBK, u32Len);
	u32Len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
	VeChar8* szGBK = VeAlloc(VeChar8, u32Len + 1);
	VeZeroMemory(szGBK, sizeof(VeChar8) * (u32Len + 1));
	WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, szGBK, u32Len, NULL, NULL);
	SetWindowText(pkData->m_hWnd, szGBK);
	VeFree(wszGBK);
	VeFree(szGBK);
}
Beispiel #2
0
//--------------------------------------------------------------------------
VeParallel::~VeParallel() noexcept
{
	m_bLoop = false;
	for (VeSizeT i(0); i < m_stThreadNum; ++i)
	{
		m_pkLoopEventArray[i].Set();
		m_pkThreadArray[i].join();
		m_pkThreadArray[i].~thread();
		m_pkLoopEventArray[i].~Event();
	}
	VeFree(m_pkThreadArray);
	m_pkThreadArray = nullptr;
	VeFree(m_pkLoopEventArray);
	m_pkLoopEventArray = nullptr;
	m_stThreadNum = 0;
}
Beispiel #3
0
//--------------------------------------------------------------------------
void VeBinaryOStream::Transfer(VeBinaryIStream& kFrom, VeInt32 i32Length)
{
	VE_ASSERT(i32Length > 0);
	void* pvBuffer = VeMalloc(i32Length);
	VE_ASSERT_EQ(kFrom.Read(pvBuffer, i32Length), i32Length);
	AddBlob(pvBuffer, i32Length);
	VeFree(pvBuffer);
}
Beispiel #4
0
//--------------------------------------------------------------------------
VeMemWriter::~VeMemWriter() noexcept
{
	if (m_pvBuffer)
	{
		VeFree(m_pvBuffer);
		m_pvBuffer = nullptr;
		m_stSize = 0;
	}
}
Beispiel #5
0
//--------------------------------------------------------------------------
void VeStringA_S::UpdateGBKToValueData()
{
	if(m_kGBKData.Length())
	{
		VeUInt32 u32Len = MultiByteToWideChar(CP_ACP, 0, m_kGBKData, -1, NULL, 0);
		VeChar16* wszGBK = VeAlloc(VeChar16, u32Len + 1);
		VeZeroMemory(wszGBK, sizeof(VeChar16) * (u32Len + 1));
		MultiByteToWideChar(CP_ACP, 0, m_kGBKData, -1, wszGBK, u32Len);
		u32Len = WideCharToMultiByte(CP_UTF8, 0, wszGBK, -1, NULL, 0, NULL, NULL);
		VeChar8* szUTF8 = VeAlloc(VeChar8, u32Len + 1);
		VeZeroMemory(szUTF8, sizeof(VeChar8) * (u32Len + 1));
		WideCharToMultiByte(CP_UTF8, 0, wszGBK, -1, szUTF8, u32Len, NULL, NULL);
		m_kValue = szUTF8;
		VeFree(wszGBK);
		VeFree(szUTF8);
	}
	else
	{
		m_kValue = "";
	}
}
Beispiel #6
0
//--------------------------------------------------------------------------
VeFileOStream::~VeFileOStream() noexcept
{
	if (m_pkFile)
	{
		WriteBackCache();
		fclose(m_pkFile);
		m_pkFile = nullptr;
	}
	if (m_pbyCache)
	{
		VeFree(m_pbyCache);
		m_pbyCache = nullptr;
	}
}
Beispiel #7
0
//--------------------------------------------------------------------------
void VeFileIStream::Finish() noexcept
{
	m_stPointer = m_stFileSize;
	if (m_pkFile)
	{
		fclose(m_pkFile);
		m_pkFile = nullptr;
	}
	if (m_pbyCache)
	{
		VeFree(m_pbyCache);
		m_pbyCache = nullptr;
	}
}
//--------------------------------------------------------------------------
D3D12InputLayout::~D3D12InputLayout() noexcept
{
	VeFree((void*)m_kDesc.pInputElementDescs);
	m_kDesc.pInputElementDescs = nullptr;
	m_kDesc.NumElements = 0;
}
Beispiel #9
0
int  ve_alloc_free(void * pbuf)
{
    VeFree(pbuf);
    return 0;
}
Beispiel #10
0
int  ve_alloc_free(void * pbuf)
{
    return VeFree(pbuf);
}
Beispiel #11
0
//--------------------------------------------------------------------------
void WindowsWindow::Init(WindowsVideo& kVideo, const char* pcTitle,
	int32_t x, int32_t y, int32_t w, int32_t h, uint32_t u32Flags)
{
	Term();
	LPWSTR lpwstrTitle = WindowsVideo::UTF8ToWSTR(pcTitle);
	DWORD dwStyle = FlagsToWindowStyle(u32Flags);

	int32_t flag_x = x >> 28;
	int32_t flag_y = y >> 28;
	x = flag_x ? 0 : x;
	y = flag_y ? 0 : y;
	RECT windowRect = { x, y, w, h };
	AdjustWindowRect(&windowRect, dwStyle, FALSE);

	VE_ASSERT(w > 0 && w < UINT16_MAX && h > 0 && h < UINT16_MAX);
	m_u16Width = (uint16_t)w;
	m_u16Height = (uint16_t)h;

	w = windowRect.right - windowRect.left;
	h = windowRect.bottom - windowRect.top;

	switch (flag_x)
	{
	case 1:
		x = CW_USEDEFAULT;
		break;
	case 2:
		x = (GetSystemMetrics(SM_CXSCREEN) - w) >> 1;
		break;
	default:
		x = windowRect.left;
		break;
	}
	switch (flag_y)
	{
	case 1:
		y = CW_USEDEFAULT;
		break;
	case 2:
		y = (GetSystemMetrics(SM_CYSCREEN) - h) >> 1;
		break;
	default:
		y = windowRect.top;
		break;
	}

	x = x == CW_USEDEFAULT ? x : vtd::max(x, 0);
	y = y == CW_USEDEFAULT ? y : vtd::max(y, 0);

	m_hHandle = CreateWindowW(kVideo.m_wstrClassName, lpwstrTitle, dwStyle,
		x, y, w, h, nullptr, nullptr, kVideo.m_hInstance, this);

	VeFree(lpwstrTitle);

	if (!m_hHandle)
	{
		m_u16Width = 0;
		m_u16Height = 0;
		THROW("Couldn't create window");
	}

	if (VE_MASK_HAS_ALL(u32Flags, VE_WINDOW_SHOWN))
	{
		int32_t i32Show = SW_SHOW;
		if (VE_MASK_HAS_ALL(dwStyle, WS_THICKFRAME))
		{
			switch (u32Flags & 0xF)
			{
			case VE_WINDOW_MINIMIZED:
				i32Show = SW_SHOWMINIMIZED;
				break;
			case VE_WINDOW_MAXIMIZED:
				i32Show = SW_SHOWMAXIMIZED;
				break;
			case VE_WINDOW_DEPSTARTUP:
				i32Show = kVideo.m_i32CmdShow;
				break;
			default:
				break;
			}
		}
		ShowWindow(m_hHandle, i32Show);
	}

	m_u32Flags = u32Flags & (VE_WINDOW_ALLOW_HIGHDPI | VE_WINDOW_FOREIGN);
	UpdateFlags();

	kVideo.m_kWindowList.attach_back(m_kNode);
}