mirror of
https://github.com/dgis/emu48android
synced 2024-12-27 09:58:46 +01:00
Improve the win32 layer and make the version 1.7beta
This commit is contained in:
parent
d8dffd44bb
commit
1065c26765
3 changed files with 25 additions and 4 deletions
|
@ -54,7 +54,7 @@ NOT WORKING YET
|
||||||
|
|
||||||
CHANGES
|
CHANGES
|
||||||
|
|
||||||
Version 1.7 (2019-11-27)
|
Version 1.7 (2019-11-29)
|
||||||
|
|
||||||
- Updated source code from Eric Rechlin's Emu48 version 1.61+ that was merged from Christoph Gießelink's Emu48 version 1.62.
|
- Updated source code from Eric Rechlin's Emu48 version 1.61+ that was merged from Christoph Gießelink's Emu48 version 1.62.
|
||||||
- Allow to take a screenshot of the fullscreen including the skin.
|
- Allow to take a screenshot of the fullscreen including the skin.
|
||||||
|
|
|
@ -54,7 +54,7 @@ NOT WORKING YET
|
||||||
|
|
||||||
CHANGES
|
CHANGES
|
||||||
|
|
||||||
Version 1.7 (2019-11-27)
|
Version 1.7 (2019-11-29)
|
||||||
|
|
||||||
- Updated source code from Eric Rechlin's Emu48 version 1.61+ that was merged from Christoph Gießelink's Emu48 version 1.62.
|
- Updated source code from Eric Rechlin's Emu48 version 1.61+ that was merged from Christoph Gießelink's Emu48 version 1.62.
|
||||||
- Allow to take a screenshot of the fullscreen including the skin.
|
- Allow to take a screenshot of the fullscreen including the skin.
|
||||||
|
|
|
@ -1683,7 +1683,8 @@ int GetObject(HGDIOBJ h, int c, LPVOID pv) {
|
||||||
} return 0;
|
} return 0;
|
||||||
}
|
}
|
||||||
HGDIOBJ GetCurrentObject(HDC hdc, UINT type) {
|
HGDIOBJ GetCurrentObject(HDC hdc, UINT type) {
|
||||||
//TODO
|
if(hdc)
|
||||||
|
return hdc->selectedBitmap;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
BOOL DeleteObject(HGDIOBJ ho) {
|
BOOL DeleteObject(HGDIOBJ ho) {
|
||||||
|
@ -1768,9 +1769,13 @@ HDC CreateCompatibleDC(HDC hdc) {
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
HDC GetDC(HWND hWnd) {
|
HDC GetDC(HWND hWnd) {
|
||||||
|
if(!hWnd)
|
||||||
|
return NULL;
|
||||||
return hWnd->windowDC;
|
return hWnd->windowDC;
|
||||||
}
|
}
|
||||||
int ReleaseDC(HWND hWnd, HDC hDC) {
|
int ReleaseDC(HWND hWnd, HDC hDC) {
|
||||||
|
if(!hWnd)
|
||||||
|
return NULL;
|
||||||
hWnd->windowDC = NULL; //?
|
hWnd->windowDC = NULL; //?
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -2291,7 +2296,23 @@ HBITMAP CreateCompatibleBitmap( HDC hdc, int cx, int cy) {
|
||||||
return newHBITMAP;
|
return newHBITMAP;
|
||||||
}
|
}
|
||||||
int GetDIBits(HDC hdc, HBITMAP hbm, UINT start, UINT cLines, LPVOID lpvBits, LPBITMAPINFO lpbmi, UINT usage) {
|
int GetDIBits(HDC hdc, HBITMAP hbm, UINT start, UINT cLines, LPVOID lpvBits, LPBITMAPINFO lpbmi, UINT usage) {
|
||||||
//TODO
|
//TODO Not sure at all for this function
|
||||||
|
if(hbm && lpbmi) {
|
||||||
|
CONST BITMAPINFO *pbmi = hbm->bitmapInfo;
|
||||||
|
if(!lpvBits) {
|
||||||
|
size_t bitmapInfoSize = sizeof(BITMAPINFOHEADER);
|
||||||
|
memcpy(lpbmi, pbmi, bitmapInfoSize);
|
||||||
|
} else {
|
||||||
|
// We consider the source and destination dib with the same format
|
||||||
|
size_t stride = (size_t)(4 * ((pbmi->bmiHeader.biWidth * pbmi->bmiHeader.biBitCount + 31) / 32));
|
||||||
|
VOID * sourceDibBits = (VOID *)hbm->bitmapBits;
|
||||||
|
VOID * destinationDibBits = lpvBits;
|
||||||
|
for(int y = 0; y < cLines; y++) {
|
||||||
|
size_t lineSize = (start + y) * stride;
|
||||||
|
memcpy(destinationDibBits + lineSize, sourceDibBits + lineSize, stride);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
COLORREF GetPixel(HDC hdc, int x ,int y) {
|
COLORREF GetPixel(HDC hdc, int x ,int y) {
|
||||||
|
|
Loading…
Reference in a new issue