Nếu bạn muốn xây dựng một chuỗi, bạn có thể có thể sử dụng snprintf()
:
const unsigned red = 0, green = 0x19, blue = 0x06;
char hexcol[16];
snprintf(hexcol, sizeof hexcol, "%02x%02x%02x", red, green, blue);
này sẽ xây dựng hexcol` chuỗi 001906" in
, đó là cách tôi đã chọn để giải thích màu sắc dụ của bạn (đó là chỉ có bốn chữ số khi nó phải là sáu).
Bạn dường như bị nhầm lẫn với thực tế là biểu tượng tiền xử lý GL_ALPHA
được xác định là 0x1906
trong các tệp tiêu đề của OpenGL. Đây không phải là màu, đó là một định dạng số định dạng được sử dụng với các cuộc gọi API OpenGL xử lý pixel, để họ biết định dạng mong đợi.
Nếu bạn có hình ảnh PNG trong bộ nhớ, định dạng GL_ALPHA
sẽ tương ứng với chỉ giá trị alpha trong hình ảnh (nếu có), ở trên là một điều hoàn toàn khác. OpenGL sẽ không cần một chuỗi, nó sẽ cần một bộ đệm trong bộ nhớ giữ dữ liệu theo định dạng yêu cầu.
Xem trang hướng dẫn sử dụng glTexImage2D()
để biết cách hoạt động của tính năng này.
Trong số đó, '0x1906', bit nào đại diện cho các màu khác nhau? –
Tôi không chắc chắn về điều đó. Nhưng nó phải giống như trình tự RGB! Không biết nếu nó trả lời câu hỏi của bạn. Lấy làm tiếc! – Tahlil
Chờ, bạn muốn chuyển đổi sang một số định dạng nhưng bạn không biết định dạng đó là gì? Chỉ có một cách để giải quyết vấn đề đó, và không ai có thể thực sự giúp bạn với điều đó. –