Lines 8-13
Link Here
|
8 |
#else |
8 |
#else |
9 |
# include <GL/gl.h> |
9 |
# include <GL/gl.h> |
10 |
# include <GL/glu.h> |
10 |
# include <GL/glu.h> |
|
|
11 |
# include <GL/glew.h> |
11 |
#endif |
12 |
#endif |
12 |
|
13 |
|
13 |
#include <FL/Fl_Gl_Window.H> |
14 |
#include <FL/Fl_Gl_Window.H> |
Lines 15-20
Link Here
|
15 |
#include <FL/gl.h> |
16 |
#include <FL/gl.h> |
16 |
|
17 |
|
17 |
#include "Oy_Fl_Image_Widget.h" |
18 |
#include "Oy_Fl_Image_Widget.h" |
|
|
19 |
#include "oyranos_devices.h" |
18 |
|
20 |
|
19 |
#ifndef _DBG_FORMAT_ |
21 |
#ifndef _DBG_FORMAT_ |
20 |
#define _DBG_FORMAT_ "%s:%d %s() " |
22 |
#define _DBG_FORMAT_ "%s:%d %s() " |
Lines 57-78
Link Here
|
57 |
GLfloat clut_scale; |
59 |
GLfloat clut_scale; |
58 |
GLfloat clut_offset; |
60 |
GLfloat clut_offset; |
59 |
|
61 |
|
60 |
GLhandleARB cmm_prog; |
62 |
GLuint cmm_prog; |
61 |
GLhandleARB cmm_shader; |
63 |
GLuint cmm_shader; |
62 |
|
64 |
|
63 |
static const char * cmm_shader_source; |
65 |
static const char * cmm_shader_source; |
64 |
|
66 |
|
65 |
void print_log (GLhandleARB obj) |
67 |
void print_log (GLuint obj) |
66 |
{ |
68 |
{ |
67 |
int len = 0; |
69 |
int len = 0; |
68 |
int nwritten = 0; |
70 |
int nwritten = 0; |
69 |
char *log; |
71 |
char *log; |
70 |
|
72 |
|
71 |
glGetObjectParameterivARB (obj, GL_OBJECT_INFO_LOG_LENGTH_ARB, &len); |
73 |
glGetShaderiv (obj, GL_INFO_LOG_LENGTH, &len); |
72 |
|
74 |
|
73 |
if (len > 0) { |
75 |
if (len > 0) { |
74 |
log = (char*) malloc (len); |
76 |
log = (char*) malloc (len); |
75 |
glGetInfoLogARB (obj, len, &nwritten, log); |
77 |
glGetShaderInfoLog (obj, len, &nwritten, log); |
76 |
fprintf (stderr, "%s\n", log); |
78 |
fprintf (stderr, "%s\n", log); |
77 |
free (log); |
79 |
free (log); |
78 |
} |
80 |
} |
Lines 99-134
Link Here
|
99 |
|
101 |
|
100 |
/* compile shader program */ |
102 |
/* compile shader program */ |
101 |
|
103 |
|
102 |
cmm_shader = glCreateShaderObjectARB (GL_FRAGMENT_SHADER_ARB); |
104 |
cmm_shader = glCreateShader (GL_FRAGMENT_SHADER); |
103 |
glShaderSourceARB (cmm_shader, 1, &cmm_shader_source, NULL); |
105 |
glShaderSource (cmm_shader, 1, &cmm_shader_source, NULL); |
104 |
glCompileShaderARB (cmm_shader); |
106 |
glCompileShader (cmm_shader); |
105 |
print_log (cmm_shader); |
107 |
print_log (cmm_shader); |
106 |
|
108 |
|
107 |
cmm_prog = glCreateProgramObjectARB (); |
109 |
cmm_prog = glCreateProgram (); |
108 |
glAttachObjectARB (cmm_prog, cmm_shader); |
110 |
glAttachShader (cmm_prog, cmm_shader); |
109 |
glLinkProgramARB (cmm_prog); |
111 |
glLinkProgram (cmm_prog); |
110 |
print_log (cmm_prog); |
112 |
print_log (cmm_prog); |
111 |
|
113 |
|
112 |
glUseProgramObjectARB (cmm_prog); |
114 |
glUseProgram (cmm_prog); |
113 |
|
115 |
|
114 |
loc = glGetUniformLocation ((GLintptr)cmm_prog, "scale"); |
116 |
loc = glGetUniformLocation ((GLintptr)cmm_prog, "scale"); |
115 |
glUniform1fARB (loc, clut_scale); |
117 |
glUniform1f (loc, clut_scale); |
116 |
|
118 |
|
117 |
loc = glGetUniformLocation ((GLintptr)cmm_prog, "offset"); |
119 |
loc = glGetUniformLocation ((GLintptr)cmm_prog, "offset"); |
118 |
glUniform1fARB (loc, clut_offset); |
120 |
glUniform1f (loc, clut_offset); |
119 |
|
121 |
|
120 |
loc = glGetUniformLocation ((GLintptr)cmm_prog, "image"); |
122 |
loc = glGetUniformLocation ((GLintptr)cmm_prog, "image"); |
121 |
glUniform1iARB (loc, 0); |
123 |
glUniform1i (loc, 0); |
122 |
|
124 |
|
123 |
/* texture 1 = clut */ |
125 |
/* texture 1 = clut */ |
124 |
glActiveTextureARB (GL_TEXTURE0_ARB + 1); |
126 |
glActiveTexture (GL_TEXTURE0 + 1); |
125 |
glBindTexture (GL_TEXTURE_3D, clut_texture); |
127 |
glBindTexture (GL_TEXTURE_3D, clut_texture); |
126 |
|
128 |
|
127 |
loc = glGetUniformLocation ((GLintptr)cmm_prog, "clut"); |
129 |
loc = glGetUniformLocation ((GLintptr)cmm_prog, "clut"); |
128 |
glUniform1iARB (loc, 1); |
130 |
glUniform1i (loc, 1); |
129 |
|
131 |
|
130 |
/* back to texture 0 (image) */ |
132 |
/* back to texture 0 (image) */ |
131 |
glActiveTextureARB (GL_TEXTURE0_ARB); |
133 |
glActiveTexture (GL_TEXTURE0); |
132 |
glBindTexture (GL_TEXTURE_2D, img_texture); |
134 |
glBindTexture (GL_TEXTURE_2D, img_texture); |
133 |
} |
135 |
} |
134 |
|
136 |
|
Lines 302-308
Link Here
|
302 |
{ |
304 |
{ |
303 |
glGenTextures (1, &clut_texture); |
305 |
glGenTextures (1, &clut_texture); |
304 |
/* texture 1 = clut */ |
306 |
/* texture 1 = clut */ |
305 |
glActiveTextureARB (GL_TEXTURE0_ARB + 1); |
307 |
glActiveTexture (GL_TEXTURE0 + 1); |
306 |
glBindTexture (GL_TEXTURE_3D, clut_texture); |
308 |
glBindTexture (GL_TEXTURE_3D, clut_texture); |
307 |
|
309 |
|
308 |
glTexParameteri (GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP); |
310 |
glTexParameteri (GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP); |
Lines 320-326
Link Here
|
320 |
0, GL_RGB, GL_UNSIGNED_SHORT, clut); |
322 |
0, GL_RGB, GL_UNSIGNED_SHORT, clut); |
321 |
|
323 |
|
322 |
/* back to texture 0 (image) */ |
324 |
/* back to texture 0 (image) */ |
323 |
glActiveTextureARB (GL_TEXTURE0_ARB); |
325 |
glActiveTexture (GL_TEXTURE0); |
324 |
} |
326 |
} |
325 |
|
327 |
|
326 |
int need_redraw; |
328 |
int need_redraw; |
Lines 358-365
Link Here
|
358 |
|
360 |
|
359 |
setupShaderTexture(); |
361 |
setupShaderTexture(); |
360 |
|
362 |
|
361 |
if(GLEE_ARB_fragment_shader && GLEE_ARB_shading_language_100) |
363 |
/* if(GLEE_ARB_fragment_shader && GLEE_ARB_shading_language_100) */ |
362 |
init_shaders (); |
364 |
/* init_shaders (); */ |
363 |
} |
365 |
} |
364 |
|
366 |
|
365 |
oyImage_s * draw_image = 0; |
367 |
oyImage_s * draw_image = 0; |