You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

85 lines
2.2 KiB

  1. /*
  2. * gamma libcucul gamma test program
  3. * Copyright (c) 2006 Sam Hocevar <sam@zoy.org>
  4. * All Rights Reserved
  5. *
  6. * $Id$
  7. *
  8. * This program is free software; you can redistribute it and/or
  9. * modify it under the terms of the Do What The Fuck You Want To
  10. * Public License, Version 2, as published by Sam Hocevar. See
  11. * http://sam.zoy.org/wtfpl/COPYING for more details.
  12. */
  13. #include "config.h"
  14. #if defined(HAVE_INTTYPES_H)
  15. # include <inttypes.h>
  16. #else
  17. typedef unsigned char uint8_t;
  18. typedef unsigned short uint16_t;
  19. typedef unsigned int uint32_t;
  20. #endif
  21. #include "cucul.h"
  22. #include "caca.h"
  23. uint32_t buffer[256 * 4];
  24. int main(void)
  25. {
  26. cucul_t *qq;
  27. caca_t *kk;
  28. struct cucul_bitmap *left, *right;
  29. int x;
  30. qq = cucul_init();
  31. kk = caca_attach(qq);
  32. for(x = 0; x < 256; x++)
  33. {
  34. buffer[x] = (x << 16) | (x << 8) | (x<< 0);
  35. buffer[x + 256] = (0xff << 16) | (x << 8) | (0x00 << 0);
  36. buffer[x + 512] = (0x00 << 16) | (0xff << 8) | (x << 0);
  37. buffer[x + 768] = (x << 16) | (0x00 << 8) | (0xff << 0);
  38. }
  39. left = cucul_create_bitmap(qq, 32, 256, 4, 4 * 256,
  40. 0x00ff0000, 0x0000ff00, 0x000000ff, 0x0);
  41. right = cucul_create_bitmap(qq, 32, 256, 4, 4 * 256,
  42. 0x00ff0000, 0x0000ff00, 0x000000ff, 0x0);
  43. caca_set_delay(kk, 20000);
  44. for(x = 0; ; x = (x + 1) % 256)
  45. {
  46. float g = (x > 128) ? (256.0 + 8.0 - x) / 64.0 : (8.0 + x) / 64.0;
  47. if(caca_get_event(kk, CACA_EVENT_KEY_PRESS))
  48. break;
  49. cucul_draw_bitmap(qq, 0, cucul_get_height(qq) / 2,
  50. cucul_get_width(qq) - 1, cucul_get_height(qq) - 1,
  51. left, buffer);
  52. cucul_set_bitmap_gamma(right, g);
  53. cucul_draw_bitmap(qq, 0, 0,
  54. cucul_get_width(qq) - 1, cucul_get_height(qq) / 2 - 1,
  55. right, buffer);
  56. cucul_set_color(qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);
  57. cucul_printf(qq, 2, 1, "gamma=%g", g);
  58. caca_display(kk);
  59. }
  60. cucul_free_bitmap(left);
  61. cucul_free_bitmap(right);
  62. caca_detach(kk);
  63. cucul_end(qq);
  64. return 0;
  65. }