chromium/remoting/client/display/gl_canvas.cc

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "remoting/client/display/gl_canvas.h"

#include "base/check.h"
#include "remoting/client/display/gl_helpers.h"
#include "remoting/client/display/gl_math.h"

namespace {

const int kVertexSize =;
const int kVertexCount =;

const char kTexCoordToViewVert[] =// Region of the texture to be used (normally the whole texture).
    "varying vec2 v_texCoord;\n"
    "attribute vec2 a_texCoord;\n"

    // Position to draw the texture on the canvas.
    "attribute vec2 a_position;\n"

    // Defines the zoom and pan configurations of the canvas.
    "uniform mat3 u_transform;\n"

    // Size of the view in pixel.
    "uniform vec2 u_viewSize;\n"

    // This matrix translates normalized texture coordinates
    // ([0, 1] starting at upper-left corner) to the view coordinates
    // ([-1, 1] starting at the center of the screen).
    // Note that the matrix is defined in column-major order.
    "const mat3 tex_to_view = mat3(2, 0, 0,\n"
    "                              0, -2, 0,\n"
    "                              -1, 1, 0);\n"
    "void main() {\n"
    "  v_texCoord = a_texCoord;\n"

    // Transforms coordinates related to the canvas to coordinates
    // related to the view.
    "  vec3 trans_position = u_transform * vec3(a_position, 1.0);\n"

    // Normalize the position by the size of the view.
    "  trans_position.xy /= u_viewSize;\n"

    // Transforms texture coordinates to view coordinates and adds
    // projection component 1.
    "  gl_Position = vec4(tex_to_view * trans_position, 1.0);\n"
    "}";

const char kDrawTexFrag[] =;

}  // namespace

namespace remoting {

GlCanvas::GlCanvas(int gl_version) :{}

GlCanvas::~GlCanvas() {}

void GlCanvas::Clear() {}

void GlCanvas::SetTransformationMatrix(const std::array<float, 9>& matrix) {}

void GlCanvas::SetViewSize(int width, int height) {}

void GlCanvas::DrawTexture(int texture_id,
                           int texture_handle,
                           int vertex_buffer,
                           float alpha_multiplier) {}

int GlCanvas::GetVersion() const {}

int GlCanvas::GetMaxTextureSize() const {}

base::WeakPtr<Canvas> GlCanvas::GetWeakPtr() {}

}  // namespace remoting