summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/Program.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/Program.cpp')
-rw-r--r--src/3rdparty/angle/src/libGLESv2/Program.cpp27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/Program.cpp b/src/3rdparty/angle/src/libGLESv2/Program.cpp
index 5f53a1f581..c38aa5a61a 100644
--- a/src/3rdparty/angle/src/libGLESv2/Program.cpp
+++ b/src/3rdparty/angle/src/libGLESv2/Program.cpp
@@ -1,5 +1,6 @@
+#include "precompiled.h"
//
-// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
+// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
@@ -9,14 +10,7 @@
#include "libGLESv2/Program.h"
#include "libGLESv2/ProgramBinary.h"
-
-#include "common/debug.h"
-
-#include "libGLESv2/main.h"
-#include "libGLESv2/Shader.h"
-#include "libGLESv2/utilities.h"
-
-#include <string>
+#include "libGLESv2/ResourceManager.h"
namespace gl
{
@@ -91,7 +85,7 @@ void InfoLog::appendSanitized(const char *message)
}
while (found != std::string::npos);
- append("%s\n", msg.c_str());
+ append("%s", msg.c_str());
}
void InfoLog::append(const char *format, ...)
@@ -112,15 +106,17 @@ void InfoLog::append(const char *format, ...)
if (!mInfoLog)
{
- mInfoLog = new char[infoLength + 1];
+ mInfoLog = new char[infoLength + 2];
strcpy(mInfoLog, info);
+ strcpy(mInfoLog + infoLength, "\n");
}
else
{
size_t logLength = strlen(mInfoLog);
- char *newLog = new char[logLength + infoLength + 1];
+ char *newLog = new char[logLength + infoLength + 2];
strcpy(newLog, mInfoLog);
strcpy(newLog + logLength, info);
+ strcpy(newLog + logLength + infoLength, "\n");
delete[] mInfoLog;
mInfoLog = newLog;
@@ -136,7 +132,7 @@ void InfoLog::reset()
}
}
-Program::Program(ResourceManager *manager, GLuint handle) : mResourceManager(manager), mHandle(handle)
+Program::Program(rx::Renderer *renderer, ResourceManager *manager, GLuint handle) : mResourceManager(manager), mHandle(handle)
{
mFragmentShader = NULL;
mVertexShader = NULL;
@@ -144,6 +140,7 @@ Program::Program(ResourceManager *manager, GLuint handle) : mResourceManager(man
mDeleteStatus = false;
mLinked = false;
mRefCount = 0;
+ mRenderer = renderer;
}
Program::~Program()
@@ -247,7 +244,7 @@ bool Program::link()
mInfoLog.reset();
- mProgramBinary.set(new ProgramBinary());
+ mProgramBinary.set(new ProgramBinary(mRenderer));
mLinked = mProgramBinary->link(mInfoLog, mAttributeBindings, mFragmentShader, mVertexShader);
return mLinked;
@@ -304,7 +301,7 @@ bool Program::setProgramBinary(const void *binary, GLsizei length)
mInfoLog.reset();
- mProgramBinary.set(new ProgramBinary());
+ mProgramBinary.set(new ProgramBinary(mRenderer));
mLinked = mProgramBinary->load(mInfoLog, binary, length);
if (!mLinked)
{