topical media & game development

talk show tell print

lib-of-vs-apps-examples-textureExample-src-testApp.cpp / cpp



  include <testApp.h>
  
  //--------------------------------------------------------------
  void testApp::setup(){        
  
          w = 250;
          h = 200;
          
          
          texGray.allocate(w,h,GL_LUMINANCE);
          texColor.allocate(w,h,GL_RGB);
          texColorAlpha.allocate(w,h,GL_RGBA);
          
          grayPixels                        = new unsigned char [w*h];
          colorPixels                 = new unsigned char [w*h*3];
          colorAlphaPixels        = new unsigned char [w*h*4];
  
          // gray pixels, set them randomly
          for (int i = 0; i < w*h; i++){
                  grayPixels[i] = (unsigned char)(ofRandomuf() * 255);
                  
          }
          
          // color pixels, use w and h to control red and green
          for (int i = 0; i < w; i++){
                  for (int j = 0; j < h; j++){
                          colorPixels[(j*w+i)*3 + 0] = i;        // r
                          colorPixels[(j*w+i)*3 + 1] = j;        // g
                          colorPixels[(j*w+i)*3 + 2] = 0; // b
                  }
          }
          
          // color alpha pixels, use w and h to control red and green
          for (int i = 0; i < w; i++){
                  for (int j = 0; j < h; j++){
                          colorAlphaPixels[(j*w+i)*4 + 0] = 255;        // r
                          colorAlphaPixels[(j*w+i)*4 + 1] = 133;        // g
                          colorAlphaPixels[(j*w+i)*4 + 2] = 200;         // b
                          colorAlphaPixels[(j*w+i)*4 + 3] = i;         // alpha
                  }
          }
          
          
          texGray.loadData(grayPixels, w,h, GL_LUMINANCE); 
          texColor.loadData(colorPixels, w,h, GL_RGB);
          texColorAlpha.loadData(colorAlphaPixels, w,h, GL_RGBA);
  
  }
   
  
  //--------------------------------------------------------------
  void testApp::update(){
          
          ofBackground(255,255,255);
          
          for (int i = 0; i < w; i++){
                  for (int j = 0; j < h; j++){
                          grayPixels[j*w+i] = (unsigned char)(ofRandomuf() * 255);
                  }
          }
          texGray.loadData(grayPixels, w,h, GL_LUMINANCE); 
          
  }
  
  //--------------------------------------------------------------
  void testApp::draw(){
  
          ofSetColor(0xffffff);
          
          texGray.draw(100,100,w,h);
          texColor.draw(350,300,w,h);
          
          //         blending had to be enabled 
          //         for transparency to work:
          
          ofEnableAlphaBlending();
          texColorAlpha.draw(250,200,w,h);
          ofDisableAlphaBlending();
  
  }
  
  //--------------------------------------------------------------
  void testApp::keyPressed  (int key){ 
          
  }
  
  //--------------------------------------------------------------
  void testApp::keyReleased(int key){ 
          
  }
  
  //--------------------------------------------------------------
  void testApp::mouseMoved(int x, int y ){
          
          // when the mouse moves, we change the color image:
          float pct = (float)x / (float)ofGetWidth();
          for (int i = 0; i < w; i++){
                  for (int j = 0; j < h; j++){
                          colorPixels[(j*w+i)*3 + 0] = i;        // r
                          colorPixels[(j*w+i)*3 + 1] = j;        // g
                          colorPixels[(j*w+i)*3 + 2] = (unsigned char)(pct*255); // b
                  }
          }
          // finally, load those pixels into the texture
          texColor.loadData(colorPixels, w,h, GL_RGB);
          
  }
  
  //--------------------------------------------------------------
  void testApp::mouseDragged(int x, int y, int button){
          
  }
  
  //--------------------------------------------------------------
  void testApp::mousePressed(int x, int y, int button){
          
  }
  
  //--------------------------------------------------------------
  void testApp::mouseReleased(int x, int y, int button){
  
  }
  
  //--------------------------------------------------------------
  void testApp::resized(int w, int h){
  
  }
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.