MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / GetBinary

Method GetBinary

pcsx2/GS/Renderers/OpenGL/GLProgram.cpp:147–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

145}
146
147bool GLProgram::GetBinary(std::vector<u8>* out_data, u32* out_data_format)
148{
149 GLint binary_size = 0;
150 glGetProgramiv(m_program_id, GL_PROGRAM_BINARY_LENGTH, &binary_size);
151 if (binary_size == 0)
152 {
153 Console.Warning("glGetProgramiv(GL_PROGRAM_BINARY_LENGTH) returned 0");
154 return false;
155 }
156
157 GLenum format = 0;
158 out_data->resize(static_cast<size_t>(binary_size));
159 glGetProgramBinary(m_program_id, binary_size, &binary_size, &format, out_data->data());
160 if (binary_size == 0)
161 {
162 Console.Warning("glGetProgramBinary() failed");
163 return false;
164 }
165 else if (static_cast<size_t>(binary_size) != out_data->size())
166 {
167 Console.Warning("Size changed from %zu to %d after glGetProgramBinary()", out_data->size(), binary_size);
168 out_data->resize(static_cast<size_t>(binary_size));
169 }
170
171 *out_data_format = static_cast<u32>(format);
172 DevCon.WriteLn("Program binary retrieved, %zu bytes, format %u", out_data->size(), *out_data_format);
173 return true;
174}
175
176void GLProgram::SetBinaryRetrievableHint()
177{

Callers 2

CompileAndAddProgramMethod · 0.80

Calls 5

WarningMethod · 0.45
resizeMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45
WriteLnMethod · 0.45

Tested by

no test coverage detected