mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
GLDraw: Fixed binding issue with RX580
git-svn-id: svn://ultimatepp.org/upp/trunk@12650 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
50ad11855b
commit
e73d5db104
5 changed files with 22 additions and 17 deletions
|
|
@ -4,7 +4,7 @@ namespace Upp {
|
|||
|
||||
GLCode::GLCode(const char *vertex_shader, const char *pixel_shader)
|
||||
{
|
||||
Create(vertex_shader, pixel_shader);
|
||||
Compile(vertex_shader, pixel_shader);
|
||||
Vector<Tuple2<int, const char *>> ins;
|
||||
CParser p(vertex_shader);
|
||||
int ii = 0;
|
||||
|
|
@ -36,6 +36,7 @@ GLCode::GLCode(const char *vertex_shader, const char *pixel_shader)
|
|||
}
|
||||
else
|
||||
p.SkipTerm();
|
||||
Link();
|
||||
}
|
||||
|
||||
GLCode& GLCode::Uniform(int i, double a)
|
||||
|
|
|
|||
|
|
@ -47,6 +47,9 @@ protected:
|
|||
GLuint program;
|
||||
int64 serialid;
|
||||
|
||||
void Compile(const char *vertex_shader_, const char *fragment_shader_);
|
||||
void Link();
|
||||
|
||||
public:
|
||||
void Create(const char *vertex_shader, const char *fragment_shader,
|
||||
Tuple2<int, const char *> *bind_attr = NULL, int bind_count = 0);
|
||||
|
|
|
|||
|
|
@ -33,8 +33,7 @@ static GLuint LoadShader(const char *src, GLenum type) {
|
|||
return shader;
|
||||
}
|
||||
|
||||
void GLProgram::Create(const char *vertex_shader_, const char *fragment_shader_,
|
||||
Tuple2<int, const char *> *bind_attr, int bind_count)
|
||||
void GLProgram::Compile(const char *vertex_shader_, const char *fragment_shader_)
|
||||
{
|
||||
Clear();
|
||||
|
||||
|
|
@ -45,10 +44,10 @@ void GLProgram::Create(const char *vertex_shader_, const char *fragment_shader_,
|
|||
|
||||
glAttachShader(program, vertex_shader);
|
||||
glAttachShader(program, fragment_shader);
|
||||
|
||||
for(int i = 0; i < bind_count; i++)
|
||||
glBindAttribLocation(program, bind_attr[i].a, bind_attr[i].b);
|
||||
}
|
||||
|
||||
void GLProgram::Link()
|
||||
{
|
||||
glLinkProgram(program);
|
||||
|
||||
GLint linked;
|
||||
|
|
@ -65,6 +64,17 @@ void GLProgram::Create(const char *vertex_shader_, const char *fragment_shader_,
|
|||
Panic("Failed to link");
|
||||
Clear();
|
||||
}
|
||||
}
|
||||
|
||||
void GLProgram::Create(const char *vertex_shader_, const char *fragment_shader_,
|
||||
Tuple2<int, const char *> *bind_attr, int bind_count)
|
||||
{
|
||||
Compile(vertex_shader_, fragment_shader_);
|
||||
|
||||
for(int i = 0; i < bind_count; i++)
|
||||
glBindAttribLocation(program, bind_attr[i].a, bind_attr[i].b);
|
||||
|
||||
Link();
|
||||
|
||||
Use();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,9 +14,6 @@ void DrawGL::Init(Size sz, double alpha)
|
|||
SyncScissor();
|
||||
prev = Point(0, 0);
|
||||
path_done = false;
|
||||
DLOG("DrawGL::Init");
|
||||
DDUMP(dd.vs);
|
||||
DDUMP(dd.off);
|
||||
}
|
||||
|
||||
DrawGL::~DrawGL()
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ void GLTriangles::Draw(const GLContext2D& dd)
|
|||
void main()
|
||||
{
|
||||
gl_FragColor = v_color;
|
||||
gl_FragColor = vec4(0, 1, 0, 1);
|
||||
}
|
||||
)");
|
||||
|
||||
|
|
@ -36,14 +35,9 @@ void GLTriangles::Draw(const GLContext2D& dd)
|
|||
va.Add(color, 3);
|
||||
va.Index(elements);
|
||||
|
||||
DDUMP(pos);
|
||||
DDUMP(color);
|
||||
DDUMP(elements);
|
||||
|
||||
// glEnable(GL_BLEND);
|
||||
glEnable(GL_BLEND);
|
||||
glDisable(GL_CULL_FACE);
|
||||
// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glDisable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
// glDepthFunc(GL_LEQUAL);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue