11 scalerProgram.
attach(vertexShader);
12 scalerProgram.
attach(fragmentShader);
15 if (GLEW_VERSION_2_0) {
35 unsigned srcStartY,
unsigned srcEndY,
unsigned ,
36 unsigned dstStartY,
unsigned dstEndY,
unsigned dstWidth,
37 unsigned logSrcHeight)
40 glActiveTexture(GL_TEXTURE1);
42 glActiveTexture(GL_TEXTURE0);
49 dstStartY, dstEndY, dstWidth);
54 unsigned srcStartY,
unsigned srcEndY,
55 float physSrcHeight,
float logSrcHeight,
56 unsigned dstStartY,
unsigned dstEndY,
unsigned dstWidth,
64 float hShift = textureFromZero ? 0.501f / dstWidth : 0.0f;
65 float vShift = textureFromZero ? 0.501f * (
66 float(srcEndY - srcStartY) / float(dstEndY - dstStartY)
68 glEnable(GL_TEXTURE_2D);
71 GLfloat tex0StartY = (srcStartY + vShift) / physSrcHeight;
72 GLfloat tex0EndY = (srcEndY + vShift) / physSrcHeight;
73 GLfloat tex1StartY = (srcStartY + vShift) / logSrcHeight;
74 GLfloat tex1EndY = (srcEndY + vShift) / logSrcHeight;
76 glMultiTexCoord2f(GL_TEXTURE0, 0.0f + hShift, tex0StartY);
77 glMultiTexCoord2f(GL_TEXTURE1, 0.0f + hShift, tex1StartY);
78 glVertex2i( 0, dstStartY);
80 glMultiTexCoord2f(GL_TEXTURE0, 1.0f + hShift, tex0StartY);
81 glMultiTexCoord2f(GL_TEXTURE1, 1.0f + hShift, tex1StartY);
82 glVertex2i(dstWidth, dstStartY);
84 glMultiTexCoord2f(GL_TEXTURE0, 1.0f + hShift, tex0EndY );
85 glMultiTexCoord2f(GL_TEXTURE1, 1.0f + hShift, tex1EndY );
86 glVertex2i(dstWidth, dstEndY );
88 glMultiTexCoord2f(GL_TEXTURE0, 0.0f + hShift, tex0EndY );
89 glMultiTexCoord2f(GL_TEXTURE1, 0.0f + hShift, tex1EndY );
90 glVertex2i( 0, dstEndY );
93 glDisable(GL_TEXTURE_2D);