ByteArray Shader::GetBinary() const { ByteArray byteArray; Context::EnsureContext(); GLint binaryLength = 0; glGetProgramiv(m_program, GL_PROGRAM_BINARY_LENGTH, &binaryLength); if (binaryLength > 0) { byteArray.Reserve(sizeof(UInt64) + binaryLength); UInt8* buffer = byteArray.GetBuffer(); GLenum binaryFormat; glGetProgramBinary(m_program, binaryLength, nullptr, &binaryFormat, &buffer[sizeof(UInt64)]); // On stocke le format au début du binaire *reinterpret_cast<UInt64*>(&buffer[0]) = binaryFormat; } return byteArray; }