| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| #include "examples/shadows/vfx/program.h" |
| #include "base/logging.h" |
| #include "examples/shadows/vfx/shader.h" |
| Program::Program(Shader* vertex_shader, Shader* fragment_shader) |
| : id_(glCreateProgram()) { |
| DCHECK(vertex_shader->type() == GL_VERTEX_SHADER); |
| DCHECK(fragment_shader->type() == GL_FRAGMENT_SHADER); |
| glAttachShader(id_, vertex_shader->id()); |
| glAttachShader(id_, fragment_shader->id()); |
| glGetProgramiv(id_, GL_LINK_STATUS, &status); |
| GLsizei expected_length = 0; |
| glGetProgramiv(id_, GL_INFO_LOG_LENGTH, &expected_length); |
| error.resize(expected_length); |
| GLsizei actual_length = 0; |
| glGetProgramInfoLog(id_, expected_length, &actual_length, &error[0]); |
| error.resize(actual_length); |
| LOG(FATAL) << "Linking program failed: " << error; |