Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // wndclass registrieren
- WNDCLASSEX WndClass;
- WndClass.cbSize = sizeof(WNDCLASSEX);
- WndClass.style = NULL;
- WndClass.lpfnWndProc = WndProc;
- WndClass.cbClsExtra = 0;
- WndClass.cbWndExtra = 0;
- WndClass.hInstance = 0;
- WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
- WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
- WndClass.hbrBackground = CreateSolidBrush(RGB(0, 0, 0));
- WndClass.lpszMenuName = NULL;
- WndClass.lpszClassName = L"PeppiWndClass";
- WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
- RegisterClassEx(&WndClass);
- //BLENDFUNCTION für updatelayeredwindow..
- BLENDFUNCTION blend = {};
- blend.AlphaFormat = AC_SRC_ALPHA;
- blend.SourceConstantAlpha = 255;
- // wnd mit layered-flag erstellen, WS_EX_NOACTIVATE damit mans nicht anklicken kann
- HWND hwnd =CreateWindowEx(WS_EX_LAYERED /*| WS_EX_NOACTIVATE*/, WndClass.lpszClassName, L"PeppiWnd", WS_POPUP, WindowPos.x, WindowPos.y, WindowSize.cx, WindowSize.cy, NULL, NULL, NULL, NULL);
- ShowWindow(hwnd, SW_SHOW);
- // bitmap erstellen (wird später für updatelayeredwindow benutzt)
- HDC WindowHDC = GetDC(hwnd);
- HDC MemoryHDC = CreateCompatibleDC(WindowHDC);
- HBITMAP hBitmap = CreateCompatibleBitmap(WindowHDC, WindowSize.cx, WindowSize.cy);
- SelectObject(MemoryHDC, hBitmap);
- RECT HDCRect = { 0, 0, WindowSize.cx, WindowSize.cy };
- POINT HDCPos = { 0, 0 };
- // d2d initialisieren
- ID2D1Factory *pFactory;
- ID2D1DCRenderTarget *pTarget;
- D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pFactory);
- D2D1_PIXEL_FORMAT format = D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_PREMULTIPLIED);
- D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_SOFTWARE, format, 0.0f, 0.0f, D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE);
- pFactory->CreateDCRenderTarget(&props, &pTarget);
- // in das bitmap reinrendern...
- pTarget->BindDC(MemoryHDC, &HDCRect);
- // message loop
- while (!exit)
- {
- while (PeekMessage(&msg, 0, 0, 0, PM_NOREMOVE))
- {
- if (GetMessage(&msg, 0, 0, 0) == 0)
- {
- exit = true;
- }
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- pTarget->BeginDraw();
- pTarget->Clear();
- // draw your shit here
- pTarget->EndDraw();
- UpdateLayeredWindow(hwnd, WindowHDC, &WindowPos, &WindowSize, MemoryHDC, &HDCPos, NULL, &blend, ULW_ALPHA);
- Sleep(1000/60); // ~ 60fps
- }
- //------------------------------------
- /*
- [13:46:31] <06Dr_Pepper> je nach game musste noch die klicks weiterleiten
- [13:46:32] <06Dr_Pepper> // maus & keyboard weiterleitung an game
- [13:46:33] <06Dr_Pepper> case WM_MOUSEMOVE:
- [13:46:33] <06Dr_Pepper> case WM_LBUTTONDOWN:
- [13:46:33] <06Dr_Pepper> case WM_LBUTTONUP:
- [13:46:33] <06Dr_Pepper> case WM_RBUTTONDOWN:
- [13:46:33] <06Dr_Pepper> case WM_RBUTTONUP:
- [13:46:33] <06Dr_Pepper> PostMessage(GameWnd, Message, wParam, lParam);
- [13:46:33] <06Dr_Pepper> return 0;
- [13:46:37] <10Igromanru> muss man für dx10/11 sdk loaden?
- [13:46:45] <06Dr_Pepper> nope, geht ohne
- [13:46:53] <06Dr_Pepper> #include <d2d1.h>
- [13:46:53] <06Dr_Pepper> #pragma comment(lib, "d2d1.lib")
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement