Tạo, chạy và hủy engine, cùng cấu hình cửa sổ. Tiếp...
Classes | |
| struct | njin::config |
| Cấu hình cửa sổ và vòng lặp, truyền vào create(). Tiếp... | |
Định nghĩa | |
| #define | NJIN_VERSION_MAJOR 0 |
| Số phiên bản của njin, theo semver: MAJOR.MINOR.PATCH. | |
| #define | NJIN_VERSION_MINOR 3 |
| Số MINOR: tăng khi thêm tính năng mới, vẫn tương thích trong nhánh. | |
| #define | NJIN_VERSION_PATCH 0 |
| Số PATCH: tăng khi chỉ sửa lỗi và bảo mật. | |
| #define | NJIN_VERSION (NJIN_VERSION_MAJOR * 10000 + NJIN_VERSION_MINOR * 100 + NJIN_VERSION_PATCH) |
| Số phiên bản dạng số để so sánh: MAJOR * 10000 + MINOR * 100 + PATCH. | |
Các hàm | |
| context * | njin::create (const config &cfg) |
| Mở cửa sổ và trả về context của engine. | |
| void | njin::run (context &ctx) |
| Chạy vòng lặp chính cho đến khi cửa sổ đóng. | |
| void | njin::destroy (context *ctx) |
| Giải phóng mọi tài nguyên của engine và đóng cửa sổ. | |
| f32 | njin::fps (const context &ctx) |
| Trả về FPS mục tiêu đã cấu hình (target_fps). | |
| vec2 | njin::screen_size (const context &ctx) |
| Trả về kích thước màn hình mà game vẽ lên, tính bằng pixel. | |
| const char * | njin::version () |
| Phiên bản của engine đang chạy, dạng chuỗi "0.1.0". | |
Tạo, chạy và hủy engine, cùng cấu hình cửa sổ.
| #define NJIN_VERSION_MAJOR 0 |
Số phiên bản của njin, theo semver: MAJOR.MINOR.PATCH.
Đây là nguồn duy nhất của số phiên bản: CMake đọc chính các dòng #define này (xem CMakeLists.txt), log lúc khởi động và njin_inspector đều hiện số này. Khi phát hành, sửa ba số ở đây, ghi vào CHANGELOG.md, rồi đặt tag vMAJOR.MINOR.PATCH.
Tăng một số thì các số bên phải về 0 (0.2.3 thành 0.3.0). Khi MAJOR còn là 0, API chưa ổn định nên bản MINOR vẫn có thể đổi API; CHANGELOG.md sẽ nói rõ khi có chuyện đó. Số MAJOR: tăng khi có biến đổi lớn, có thể không tương thích bản cũ.
| #define NJIN_VERSION (NJIN_VERSION_MAJOR * 10000 + NJIN_VERSION_MINOR * 100 + NJIN_VERSION_PATCH) |
Số phiên bản dạng số để so sánh: MAJOR * 10000 + MINOR * 100 + PATCH.
Ví dụ 0.1.0 là 100. Dùng #if NJIN_VERSION >= 200 để hỗ trợ nhiều bản engine.
| context * njin::create | ( | const config & | cfg | ) |
Mở cửa sổ và trả về context của engine.
Không bao giờ trả về nullptr.
Module lõi của engine (camera) đã được đăng ký sẵn. Đăng ký module của game bằng mod_register() trước khi gọi run().
| cfg | Cấu hình cửa sổ và vòng lặp. |
| void njin::run | ( | context & | ctx | ) |
| void njin::destroy | ( | context * | ctx | ) |
Giải phóng mọi tài nguyên của engine và đóng cửa sổ.
nullptr bị bỏ qua.
| ctx | Context từ create(), hoặc nullptr. |
| f32 njin::fps | ( | const context & | ctx | ) |
Trả về FPS mục tiêu đã cấu hình (target_fps).
Đây là giá trị cấu hình, không phải FPS đo được. Muốn thời gian của frame thì dùng delta().
| ctx | Context của engine. |
| vec2 njin::screen_size | ( | const context & | ctx | ) |
Trả về kích thước màn hình mà game vẽ lên, tính bằng pixel.
Không có độ phân giải ảo thì đó là cửa sổ: lúc đầu bằng width, height đã cấu hình, và thay đổi khi người dùng kéo cửa sổ (nếu resizable) hoặc khi bật toàn màn hình. Có độ phân giải ảo (window_set_virtual_size()) thì đó là kích thước ảo, không đổi theo cửa sổ; cỡ thật của cửa sổ là window_size().
| ctx | Context của engine. |
| const char * njin::version | ( | ) |
Phiên bản của engine đang chạy, dạng chuỗi "0.1.0".
Khác với các macro ở trên, hàm này cho biết bản của thư viện đã liên kết, không phải bản của header lúc biên dịch game: hai số khác nhau nghĩa là game và engine được build từ hai bản khác nhau.