Improving multimedia, trying to add a single c library mode
This commit is contained in:
@@ -132,9 +132,11 @@ StartMultimedia :: (x: S64 = 1280, y: S64 = 720, title: String = "Hello people!"
|
||||
Mu.os.window_dc = GetDC(Mu.os.window)
|
||||
Mu.os.bitmap = W32.CreateBitmap(Mu.os.window_dc, size)
|
||||
|
||||
Mu.scrn = Mu.os.bitmap.data
|
||||
Mu.x = size.x
|
||||
Mu.y = size.y
|
||||
Mu.screen = Mu.os.bitmap.data
|
||||
Mu.window.x = size.x
|
||||
Mu.window.y = size.y
|
||||
Mu.window.sizef.x = Mu.window.x->F32
|
||||
Mu.window.sizef.y = Mu.window.y->F32
|
||||
|
||||
UpdateMultimedia :: (): Bool
|
||||
DrawBitmapInCompatibleDC(&Mu.os.bitmap)
|
||||
@@ -145,12 +147,16 @@ UpdateMultimedia :: (): Bool
|
||||
DispatchMessageW(&msg)
|
||||
|
||||
size := GetWindowSize(Mu.os.window)
|
||||
if size.x != Mu.x || size.y != Mu.y
|
||||
if size.x != Mu.window.x || size.y != Mu.window.y
|
||||
DestroyBitmap(&Mu.os.bitmap)
|
||||
CreateBitmap(Mu.os.window_dc, size)
|
||||
|
||||
Mu.x = size.x
|
||||
Mu.y = size.y
|
||||
Mu.screen = Mu.os.bitmap.data
|
||||
Mu.window.x = size.x
|
||||
Mu.window.y = size.y
|
||||
Mu.window.sizef.x = Mu.window.x->F32
|
||||
Mu.window.sizef.y = Mu.window.y->F32
|
||||
|
||||
|
||||
Mu.frame_count += 1
|
||||
frame_time := Time() - Mu.time.frame_start
|
||||
@@ -177,10 +183,29 @@ WindowProc :: (hwnd: HWND, msg: UINT, wparam: WPARAM, lparam: LPARAM): LRESULT
|
||||
return 0
|
||||
elif msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN
|
||||
key := MapVKToKey(wparam)
|
||||
Mu.key[key].is_down = true
|
||||
Mu.key[key].down = true
|
||||
elif msg == WM_KEYUP || msg == WM_SYSKEYUP
|
||||
key := MapVKToKey(wparam)
|
||||
Mu.key[key].is_down = false
|
||||
Mu.key[key].down = false
|
||||
elif msg == WM_LBUTTONDOWN ;; Mu.mouse.left.down = true
|
||||
elif msg == WM_LBUTTONUP ;; Mu.mouse.left.down = false
|
||||
elif msg == WM_RBUTTONDOWN ;; Mu.mouse.right.down = true
|
||||
elif msg == WM_RBUTTONUP ;; Mu.mouse.right.down = false
|
||||
elif msg == WM_MBUTTONDOWN ;; Mu.mouse.middle.down = true
|
||||
elif msg == WM_MBUTTONUP ;; Mu.mouse.middle.down = false
|
||||
elif msg == WM_MOUSEWHEEL
|
||||
if wparam->int > 0
|
||||
Mu.mouse.wheel = 1
|
||||
else
|
||||
Mu.mouse.wheel = -1
|
||||
// Case(WM_CHAR){
|
||||
// Utf32Result utf32 = Utf16ToUtf32((u16 *)&wparam, 1);
|
||||
// if(!utf32.error){
|
||||
// int index = OS->input_count;
|
||||
// OS->input_count = ClampTop(OS->input_count + 1, (int)(ArrayCount(OS->input) - 1));
|
||||
// OS->input[index] = utf32.out_str;
|
||||
// }
|
||||
// }Break;
|
||||
|
||||
|
||||
else;; result = DefWindowProcW(hwnd, msg, wparam, lparam)
|
||||
|
||||
Reference in New Issue
Block a user