Kiểm tra đầu tiên của bạn có thể là một LoadLibrary
cuộc gọi (hoặc tương đương với nền tảng của bạn) cho Vulkan DLL:
HMODULE vulkanDll = LoadLibrary("vulkan-1.dll");
Sau đó, bạn sẽ muốn có được con trỏ đến vkCreateInstance
.
PFN_vkCreateInstance vkCreateInstance;
// ...
vkCreateInstance = GetProcAddress(vulkanDll, "vkCreateInstance");
Sau đó, bạn sẽ muốn điền các thông số thích hợp và gọi vkCreateInstance
. Điều này có thể được tham gia, bạn sẽ muốn đọc tài liệu. vkCreateInstance
sẽ trả về mã kết quả có thể chỉ ra rằng nó đã không tải được. Nếu thất bại hoặc nếu bất kỳ bước nào trước đó không thành công (với lỗi không phải là "bạn đã gọi hàm sai" hoặc tương tự), Vulkan không khả dụng, hãy quay lại OpenGL.
Trên đây là một cách tiếp cận bất khả tri của thư viện (nhưng không phải hệ điều hành); nếu bạn đang sử dụng các khung bổ sung, họ có thể tóm tắt một số công việc này cho bạn. Ví dụ, GLFW rõ ràng cung cấp một chức năng bạn có thể sử dụng để biết Vulkan có khả dụng hay không .
Đối với OpenGL, hầu hết mọi thứ đều có sẵn DLL hoặc tương đương, nhưng bạn có thể áp dụng các LoadLibrary
bước et cetera tương tự nếu muốn. Khởi tạo OpenGL là một nhiệm vụ cụ thể hơn về nền tảng, dường như nằm ngoài phạm vi của câu hỏi này, nhưng nó có thể thất bại: nếu thất bại, OpenGL vì một số lý do không khả dụng.
Tuy nhiên, rất có thể nó sẽ thành công, nhưng bạn có thể đã quay lại phiên bản OpenGL mà bạn không muốn hoặc điều đó quá thô sơ cho trò chơi của bạn. Bạn có thể gọi glGetString
với GL_VERSION
để xác định phiên bản thực tế của OpenGL bạn đã có thể tải. Các giá trị khác, chẳng hạn như GL_VENDOR
hay GL_RENDERER
, có thể cho bạn biết thông tin về người lái xe bạn đang quan tâm. Trên cơ sở đó, bạn có thể xác định nếu tải OpenGL tổng thể của bạn là "thành công" cho mỗi số liệu của riêng bạn và xử lý đó phù hợp (đâm, trong trường hợp của bạn).