37 const int texture_width,
38 const int texture_height)
63 glActiveTexture(GL_TEXTURE0);
64 glBindTexture(GL_TEXTURE_2D,
texture_.gl_id);
65 glTexImage2D(GL_TEXTURE_2D,
76 glBindTexture(GL_TEXTURE_2D, 0);
95 glBindBuffer(GL_PIXEL_UNPACK_BUFFER,
texture_.gl_pbo_id);
96 glBufferData(GL_PIXEL_UNPACK_BUFFER, size_in_bytes,
nullptr, GL_DYNAMIC_DRAW);
97 glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0);
214 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
218 glActiveTexture(GL_TEXTURE0);
219 glBindTexture(GL_TEXTURE_2D,
texture_.gl_id);
223 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
226 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
234 GLuint vertex_array_object;
235 glGenVertexArrays(1, &vertex_array_object);
236 glBindVertexArray(vertex_array_object);
238 const int texcoord_attribute =
display_shader_.get_tex_coord_attrib_location();
239 const int position_attribute =
display_shader_.get_position_attrib_location();
241 glEnableVertexAttribArray(texcoord_attribute);
242 glEnableVertexAttribArray(position_attribute);
244 glVertexAttribPointer(
245 texcoord_attribute, 2, GL_FLOAT, GL_FALSE, 4 *
sizeof(
float), (
const GLvoid *)
nullptr);
246 glVertexAttribPointer(position_attribute,
251 (
const GLvoid *)(
sizeof(
float) * 2));
253 glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
255 glBindBuffer(GL_ARRAY_BUFFER, 0);
256 glBindTexture(GL_TEXTURE_2D, 0);
258 glDeleteVertexArrays(1, &vertex_array_object);
334 glActiveTexture(GL_TEXTURE0);
335 glBindTexture(GL_TEXTURE_2D,
texture_.gl_id);
336 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
337 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
338 glBindTexture(GL_TEXTURE_2D, 0);
341 glGenBuffers(1, &
texture_.gl_pbo_id);
343 LOG_ERROR <<
"Error creating texture pixel buffer object.";