| 570 | #endif |
| 571 | |
| 572 | static inline VkFormat vkGetFormatFromOpenGLInternalFormat( const GLenum internalFormat ) |
| 573 | { |
| 574 | switch ( internalFormat ) |
| 575 | { |
| 576 | // |
| 577 | // 8 bits per component |
| 578 | // |
| 579 | case GL_R8: return VK_FORMAT_R8_UNORM; // 1-component, 8-bit unsigned normalized |
| 580 | case GL_RG8: return VK_FORMAT_R8G8_UNORM; // 2-component, 8-bit unsigned normalized |
| 581 | case GL_RGB8: return VK_FORMAT_R8G8B8_UNORM; // 3-component, 8-bit unsigned normalized |
| 582 | case GL_RGBA8: return VK_FORMAT_R8G8B8A8_UNORM; // 4-component, 8-bit unsigned normalized |
| 583 | |
| 584 | case GL_R8_SNORM: return VK_FORMAT_R8_SNORM; // 1-component, 8-bit signed normalized |
| 585 | case GL_RG8_SNORM: return VK_FORMAT_R8G8_SNORM; // 2-component, 8-bit signed normalized |
| 586 | case GL_RGB8_SNORM: return VK_FORMAT_R8G8B8_SNORM; // 3-component, 8-bit signed normalized |
| 587 | case GL_RGBA8_SNORM: return VK_FORMAT_R8G8B8A8_SNORM; // 4-component, 8-bit signed normalized |
| 588 | |
| 589 | case GL_R8UI: return VK_FORMAT_R8_UINT; // 1-component, 8-bit unsigned integer |
| 590 | case GL_RG8UI: return VK_FORMAT_R8G8_UINT; // 2-component, 8-bit unsigned integer |
| 591 | case GL_RGB8UI: return VK_FORMAT_R8G8B8_UINT; // 3-component, 8-bit unsigned integer |
| 592 | case GL_RGBA8UI: return VK_FORMAT_R8G8B8A8_UINT; // 4-component, 8-bit unsigned integer |
| 593 | |
| 594 | case GL_R8I: return VK_FORMAT_R8_SINT; // 1-component, 8-bit signed integer |
| 595 | case GL_RG8I: return VK_FORMAT_R8G8_SINT; // 2-component, 8-bit signed integer |
| 596 | case GL_RGB8I: return VK_FORMAT_R8G8B8_SINT; // 3-component, 8-bit signed integer |
| 597 | case GL_RGBA8I: return VK_FORMAT_R8G8B8A8_SINT; // 4-component, 8-bit signed integer |
| 598 | |
| 599 | case GL_SR8: return VK_FORMAT_R8_SRGB; // 1-component, 8-bit sRGB |
| 600 | case GL_SRG8: return VK_FORMAT_R8G8_SRGB; // 2-component, 8-bit sRGB |
| 601 | case GL_SRGB8: return VK_FORMAT_R8G8B8_SRGB; // 3-component, 8-bit sRGB |
| 602 | case GL_SRGB8_ALPHA8: return VK_FORMAT_R8G8B8A8_SRGB; // 4-component, 8-bit sRGB |
| 603 | |
| 604 | // |
| 605 | // 16 bits per component |
| 606 | // |
| 607 | case GL_R16: return VK_FORMAT_R16_UNORM; // 1-component, 16-bit unsigned normalized |
| 608 | case GL_RG16: return VK_FORMAT_R16G16_UNORM; // 2-component, 16-bit unsigned normalized |
| 609 | case GL_RGB16: return VK_FORMAT_R16G16B16_UNORM; // 3-component, 16-bit unsigned normalized |
| 610 | case GL_RGBA16: return VK_FORMAT_R16G16B16A16_UNORM; // 4-component, 16-bit unsigned normalized |
| 611 | |
| 612 | case GL_R16_SNORM: return VK_FORMAT_R16_SNORM; // 1-component, 16-bit signed normalized |
| 613 | case GL_RG16_SNORM: return VK_FORMAT_R16G16_SNORM; // 2-component, 16-bit signed normalized |
| 614 | case GL_RGB16_SNORM: return VK_FORMAT_R16G16B16_SNORM; // 3-component, 16-bit signed normalized |
| 615 | case GL_RGBA16_SNORM: return VK_FORMAT_R16G16B16A16_SNORM; // 4-component, 16-bit signed normalized |
| 616 | |
| 617 | case GL_R16UI: return VK_FORMAT_R16_UINT; // 1-component, 16-bit unsigned integer |
| 618 | case GL_RG16UI: return VK_FORMAT_R16G16_UINT; // 2-component, 16-bit unsigned integer |
| 619 | case GL_RGB16UI: return VK_FORMAT_R16G16B16_UINT; // 3-component, 16-bit unsigned integer |
| 620 | case GL_RGBA16UI: return VK_FORMAT_R16G16B16A16_UINT; // 4-component, 16-bit unsigned integer |
| 621 | |
| 622 | case GL_R16I: return VK_FORMAT_R16_SINT; // 1-component, 16-bit signed integer |
| 623 | case GL_RG16I: return VK_FORMAT_R16G16_SINT; // 2-component, 16-bit signed integer |
| 624 | case GL_RGB16I: return VK_FORMAT_R16G16B16_SINT; // 3-component, 16-bit signed integer |
| 625 | case GL_RGBA16I: return VK_FORMAT_R16G16B16A16_SINT; // 4-component, 16-bit signed integer |
| 626 | |
| 627 | case GL_R16F: return VK_FORMAT_R16_SFLOAT; // 1-component, 16-bit floating-point |
| 628 | case GL_RG16F: return VK_FORMAT_R16G16_SFLOAT; // 2-component, 16-bit floating-point |
| 629 | case GL_RGB16F: return VK_FORMAT_R16G16B16_SFLOAT; // 3-component, 16-bit floating-point |
no outgoing calls