UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
dxt_display.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int dxt_display_image (const char *title, DXT_IMAGE_TYPE *image, int width, int height)
 
int dxt_display_image_comparison (DXT_IMAGE_TYPE *image, unsigned char *image_compressed, int image_compressed_size, enum dxt_type type, int width, int height)
 
int dxt_display_image_compressed (const char *title, unsigned char *image_compressed, int image_compressed_size, enum dxt_type type, int width, int height)
 

Function Documentation

◆ dxt_display_image()

int dxt_display_image ( const char * title,
DXT_IMAGE_TYPE * image,
int width,
int height )

Copyright (c) 2011, Martin Srom All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Display image

Parameters
windowtitle
image
width
height
Returns
decoder structure or zero if fails

Documented at declaration

Definition at line 198 of file dxt_display.c.

199{
200#ifdef DEBUG
201 printf("Display Image [resolution: %dx%d]\n", width, height);
202#endif
203
204 dxt_display_init(title, DXT_TYPE_DXT1, width, height);
205
206 glGenTextures(1, &g_display.texture_id);
207 glBindTexture(GL_TEXTURE_2D, g_display.texture_id);
208 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
209 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
210 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
211 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
212 glTexImage2D(GL_TEXTURE_2D, 0, DXT_IMAGE_GL_FORMAT, width, height, 0, GL_RGBA, DXT_IMAGE_GL_TYPE, image);
213
215
216 glDeleteShader(g_display.shader_fragment_display);
218 glDeleteProgram(g_display.program_display);
219 glDeleteProgram(g_display.program_display_dxt5ycocg);
220}
#define DXT_IMAGE_GL_TYPE
Definition dxt_common.h:72
#define DXT_IMAGE_GL_FORMAT
Definition dxt_common.h:73
@ DXT_TYPE_DXT1
Definition dxt_common.h:89
int dxt_display_init(const char *title, enum dxt_type type, int width, int height)
void dxt_display_run()
struct dxt_display g_display
Definition dxt_display.c:66
GLhandleARB program_display_dxt5ycocg
Definition dxt_display.c:55
GLuint texture_id
Definition dxt_display.c:45
GLhandleARB shader_fragment_display_dxt5ycocg
Definition dxt_display.c:57
GLhandleARB program_display
Definition dxt_display.c:54
GLhandleARB shader_fragment_display
Definition dxt_display.c:56

References dxt_display_init(), dxt_display_run(), DXT_IMAGE_GL_FORMAT, DXT_IMAGE_GL_TYPE, DXT_TYPE_DXT1, g_display, dxt_display::height, dxt_display::program_display, dxt_display::program_display_dxt5ycocg, dxt_display::shader_fragment_display, dxt_display::shader_fragment_display_dxt5ycocg, dxt_display::texture_id, and dxt_display::width.

Referenced by perform_decode(), perform_display(), and perform_encode().

Here is the call graph for this function:

◆ dxt_display_image_comparison()

int dxt_display_image_comparison ( DXT_IMAGE_TYPE * image,
unsigned char * image_compressed,
int image_compressed_size,
enum dxt_type type,
int width,
int height )

Display comparison for image and compressed image

Parameters
windowtitle
image_compressedCompressed image data
type
width
height
Returns
0 if succeeds, otherwise nonzero

Documented at declaration

Definition at line 248 of file dxt_display.c.

249{
250#ifdef DEBUG
251 printf("Display Image Comparison [size: %d bytes, resolution: %dx%d]\n", image_compressed_size, width, height);
252#endif
253
254 dxt_display_init("Display Comparison", type, width, height);
255
256 glGenTextures(1, &g_display.texture_id);
257 glBindTexture(GL_TEXTURE_2D, g_display.texture_id);
258 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
259 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
260 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
261 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
262 glTexImage2D(GL_TEXTURE_2D, 0, DXT_IMAGE_GL_FORMAT, width, height, 0, GL_RGBA, DXT_IMAGE_GL_TYPE, image);
263
264 glGenTextures(1, &g_display.texture_compressed_id);
265 glBindTexture(GL_TEXTURE_2D, g_display.texture_compressed_id);
266 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
267 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
268 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
269 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
271 glCompressedTexImage2DARB(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, width, height, 0, image_compressed_size, image_compressed);
272 else
273 glCompressedTexImage2DARB(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, width, height, 0, image_compressed_size, image_compressed);
274
276
278
279 return 0;
280}
@ DXT_TYPE_DXT5_YCOCG
Definition dxt_common.h:91
Option::OptType type
Definition settings.cpp:194
enum dxt_type type
Definition dxt_display.c:36
GLuint texture_compressed_id
Definition dxt_display.c:48
GLuint texture_current_id
Definition dxt_display.c:51

References dxt_display_init(), dxt_display_run(), DXT_IMAGE_GL_FORMAT, DXT_IMAGE_GL_TYPE, DXT_TYPE_DXT5_YCOCG, g_display, dxt_display::height, dxt_display::texture_compressed_id, dxt_display::texture_current_id, dxt_display::texture_id, dxt_display::type, type, and dxt_display::width.

Referenced by perform_comparison().

Here is the call graph for this function:

◆ dxt_display_image_compressed()

int dxt_display_image_compressed ( const char * title,
unsigned char * image_compressed,
int image_compressed_size,
enum dxt_type type,
int width,
int height )

Display compressed image

Parameters
windowtitle
image_compressedCompressed image data
type
width
height
Returns
0 if succeeds, otherwise nonzero

Documented at declaration

Definition at line 224 of file dxt_display.c.

225{
226#ifdef DEBUG
227 printf("Display Compressed Image [size: %d bytes, resolution: %dx%d]\n", image_compressed_size, width, height);
228#endif
229
230 dxt_display_init(title, type, width, height);
231
232 glGenTextures(1, &g_display.texture_compressed_id);
233 glBindTexture(GL_TEXTURE_2D, g_display.texture_compressed_id);
234 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
235 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
236 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
237 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
238 if ( type == DXT_TYPE_DXT5_YCOCG )
239 glCompressedTexImage2DARB(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, width, height, 0, image_compressed_size, image_compressed);
240 else
241 glCompressedTexImage2DARB(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, width, height, 0, image_compressed_size, image_compressed);
242
244}

References dxt_display_init(), dxt_display_run(), DXT_TYPE_DXT5_YCOCG, g_display, dxt_display::height, dxt_display::texture_compressed_id, type, and dxt_display::width.

Referenced by perform_decode(), perform_display(), and perform_encode().

Here is the call graph for this function: