|
| void | njin::quit (context &ctx) |
| | Yêu cầu thoát game.
|
| void | njin::window_set_close_intercept (context &ctx, bool on) |
| | Chặn nút đóng cửa sổ: nút [x], Alt+F4, và phím thoát (config::exit_key).
|
| bool | njin::window_close_requested (const context &ctx) |
| | Người chơi vừa đóng cửa sổ trong lúc window_set_close_intercept() đang bật.
|
| void | njin::window_set_size (context &ctx, vec2 size) |
| | Đổi kích thước cửa sổ.
|
| void | njin::window_set_title (context &ctx, const char *title) |
| | Đổi tiêu đề cửa sổ.
|
| void | njin::window_set_fullscreen (context &ctx, bool fullscreen) |
| | Bật hoặc tắt toàn màn hình.
|
| bool | njin::window_fullscreen (const context &ctx) |
| | Cửa sổ có đang toàn màn hình không.
|
| void | njin::window_set_vsync (context &ctx, bool vsync) |
| | Bật hoặc tắt đồng bộ dọc lúc đang chạy, xem config::vsync.
|
| bool | njin::window_vsync (const context &ctx) |
| | Đồng bộ dọc có đang bật không.
|
| bool | njin::window_resized (const context &ctx) |
| | Cửa sổ có vừa đổi kích thước ở frame này không (người dùng kéo cửa sổ, hoặc bật tắt toàn màn hình).
|
| void | njin::cursor_set_visible (context &ctx, bool visible) |
| | Hiện hoặc ẩn con trỏ chuột khi nó nằm trong cửa sổ.
|
| void | njin::screenshot (context &ctx, const char *path=nullptr) |
| | Chụp màn hình và lưu ra file ảnh.
|
| void | njin::window_set_virtual_size (context &ctx, vec2 size, bool integer_scale=true) |
| | Bật độ phân giải ảo: game vẽ lên một màn hình cố định size pixel (ví dụ 320 x 180), rồi engine phóng nó ra cửa sổ, giữ tỉ lệ, phần thừa là viền.
|
| void | njin::window_set_bar_color (context &ctx, rgba color) |
| | Màu viền quanh màn hình ảo.
|
| vec2 | njin::window_size (const context &ctx) |
| | Kích thước thật của cửa sổ, pixel, kể cả khi có độ phân giải ảo.
|
| rect | njin::window_viewport (const context &ctx) |
| | Vùng của cửa sổ mà màn hình ảo đang chiếm, pixel cửa sổ.
|
| void | njin::cursor_set_locked (context &ctx, bool locked) |
| | Khóa con trỏ chuột trong cửa sổ và ẩn nó, như game bắn súng góc nhìn thứ nhất.
|
Thoát game, toàn màn hình, kích thước cửa sổ, con trỏ chuột.
| void njin::screenshot |
( |
context & | ctx, |
|
|
const char * | path = nullptr ) |
Chụp màn hình và lưu ra file ảnh.
Ảnh được chụp ở cuối frame hiện tại, sau phase_post_render, nên có đủ mọi thứ của frame kể cả UI, dù gọi hàm này ở phase nào. Gọi nhiều lần trong một frame thì lưu nhiều file cùng một ảnh.
Định dạng theo đuôi file: .png (nên dùng), .bmp, .tga, .qoi. Thư mục cha được tạo nếu chưa có. Kết quả được ghi vào log.
- Các tham số
-
| ctx | Context của engine. |
| path | Đường dẫn file. Để nullptr thì lưu vào thư mục screenshots trong thư mục lưu game (xem save_path()), tên theo ngày giờ. |
| void njin::window_set_virtual_size |
( |
context & | ctx, |
|
|
vec2 | size, |
|
|
bool | integer_scale = true ) |
Bật độ phân giải ảo: game vẽ lên một màn hình cố định size pixel (ví dụ 320 x 180), rồi engine phóng nó ra cửa sổ, giữ tỉ lệ, phần thừa là viền.
Mọi thứ đi qua màn hình ảo: thế giới, UI, toast, chuyển scene. screen_size() trả về size, mouse_pos() và mouse_delta() tính theo pixel ảo, nên code của game không cần biết cửa sổ thật to bao nhiêu. Ảnh được phóng không làm mượt, nên pixel art sắc nét ở mọi cỡ cửa sổ.
Với integer_scale, chỉ phóng 1, 2, 3... lần: mọi pixel ảo to bằng nhau, viền có thể dày hơn. Không thì phóng vừa khít cửa sổ.
- Các tham số
-
| ctx | Context của engine. |
| size | Kích thước ảo, pixel. {0, 0} để tắt và vẽ thẳng lên cửa sổ. |
| integer_scale | Chỉ phóng theo bội số nguyên. |