|
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; |