X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphic.cpp;h=005d30fb4ef8f7929326093766d49ae62332dcbe;hb=e5f9004b672b038e43cf2b20c3fc9327f2b55ffd;hp=01bfcdb6a177db0fc16d8acf04498fcb4db47124;hpb=a38c924ff32081f5cd67c2b0e2d5ca61f0e99de2;p=libs%2Fgltk.git diff --git a/source/graphic.cpp b/source/graphic.cpp index 01bfcdb..005d30f 100644 --- a/source/graphic.cpp +++ b/source/graphic.cpp @@ -14,9 +14,6 @@ Graphic::Graphic(): void Graphic::render(unsigned wd, unsigned ht) const { - GL::VertexArray varr((GL::TEXCOORD2, GL::VERTEX2)); - RefPtr vab=varr.modify(); - vector x, y; create_coords(0.0f-shadow.left, wd+shadow.right, border.left, border.right, slice.w-border.left-border.right, x); create_coords(0.0f-shadow.bottom, ht+shadow.top, border.bottom, border.top, slice.h-border.bottom-border.top, y); @@ -25,20 +22,21 @@ void Graphic::render(unsigned wd, unsigned ht) const create_texcoords(slice.x, slice.x+slice.w, border.left, border.right, texture->get_width(), u); create_texcoords(slice.y, slice.y+slice.h, border.bottom, border.top, texture->get_height(), v); - unsigned xmin=border.left ? 0 : 1; - unsigned xmax=x.size()-(border.right ? 2 : 3); - unsigned ymin=border.bottom ? 0 : 1; - unsigned ymax=y.size()-(border.top ? 2 : 3); + unsigned xmin = border.left ? 0 : 1; + unsigned xmax = x.size()-(border.right ? 2 : 3); + unsigned ymin = border.bottom ? 0 : 1; + unsigned ymax = y.size()-(border.top ? 2 : 3); texture->bind(); - GL::Immediate imm((GL::TEXCOORD2,GL::VERTEX2)); + GL::Immediate imm((GL::COLOR4_UBYTE, GL::TEXCOORD2, GL::VERTEX2)); + imm.color(1.0f, 1.0f, 1.0f); imm.begin(GL::QUADS); for(unsigned i=ymin; i<=ymax; ++i) { - unsigned i2=(i==0 ? 0 : i==y.size()-2 ? 2 : 1); + unsigned i2 = (i==0 ? 0 : i==y.size()-2 ? 2 : 1); for(unsigned j=xmin; j<=xmax; ++j) { - unsigned j2=(j==0 ? 0 : j==x.size()-2 ? 2 : 1); + unsigned j2 = (j==0 ? 0 : j==x.size()-2 ? 2 : 1); imm.texcoord(u[j2], v[i2]); imm.vertex(x[j], y[i]); imm.texcoord(u[j2+1], v[i2]); @@ -58,9 +56,9 @@ void Graphic::create_coords(float low, float high, float brd1, float brd2, float coords.push_back(low+brd1); if(repeat) { - float space=high-low-brd1-brd2; - unsigned div=max(static_cast(space/block), 1U); - float delta=space/div; + float space = high-low-brd1-brd2; + unsigned div = max(static_cast(space/block), 1U); + float delta = space/div; for(unsigned i=1; i(n); - graph.slice=Geometry(0, 0, graph.texture->get_width(), graph.texture->get_height()); + graph.texture = &res.get(n); + graph.slice = Geometry(0, 0, graph.texture->get_width(), graph.texture->get_height()); } void Graphic::Loader::slice(unsigned x, unsigned y, unsigned w, unsigned h) { - graph.slice=Geometry(x, y, w, h); + graph.slice = Geometry(x, y, w, h); } void Graphic::Loader::border()