Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


#ActualKhatharr

Posted 13 March 2013 - 08:55 PM

It's 'red byte I'm on' + 'red byte to my right' + 'red byte below me' + 'red byte below me and to my right'.

 

Adding the stride moves you down one row.

 

If you think of a 10x10 grid, the stride is 10. If the grid is represented an array of 100 bytes then index 4 is the 5th cell in the top row. index 4 + stride is index 14, which is the 5th cell in the second row.

 

One way to simplify this kind of process is to use a union to represent a color value:

 

union uColor {
  unint32_t u32;
  struct {
    unsigned char alpha;
    unsigned char green;
    unsigned char blue;
    unsigned char red;
  };
};

You can create a color:

 

uColor col;

 

then reference the uint value:

 

col.u32

 

or a specific channel:

 

col.red

 

You cast an array of texels as uColor* then use the union to easily access the channels without trying to work with two index scales between uint and uchar.


#5Khatharr

Posted 13 March 2013 - 08:54 PM

It's 'red byte I'm on' + 'red byte to my right' + 'red byte below me' + 'red byte below me and to my right'.

 

Adding the stride moves you down one row.

 

If you think of a 10x10 grid, the stride is 10. If the grid is represented an array of 100 bytes then index 4 is the 5th cell in the top row. index 4 + stride is index 14, which is the 5th cell in the second row.

 

One way to simplify this kind of process is to use a union to represent a color value:

 

union uColor {
  unint32_t u32;
  struct {
    unsigned char alpha;
    unsigned char green;
    unsigned char blue;
    unsigned char red;
  };
};

You can create a color:

 

uColor col;

 

then reference the uint value:

 

col.uint

 

or a specific channel:

 

col.red

 

You cast an array of texels as uColor* then use the union to easily access the channels without trying to work with two index scales between uint and uchar.


#4Khatharr

Posted 13 March 2013 - 08:53 PM

It's 'red byte I'm on' + 'red byte to my right' + 'red byte below me' + 'red byte below me and to my right'.

 

Adding the stride moves you down one row.

 

If you think of a 10x10 grid, the stride is 10. If the grid is represented an array of 100 bytes then index 4 is the 5th cell in the top row. index 4 + stride is index 14, which is the 5th cell in the second row.

 

One way to simplify this kind of process is to use a union to represent a color value:

 

union uColor {
  unint32_t uint;
  struct {
    unsigned char alpha;
    unsigned char green;
    unsigned char blue;
    unsigned char red;
  };
};

You can create a color:

 

uColor col;

 

then reference the uint value:

 

col.uint

 

or a specific channel:

 

col.red

 

You cast an array of texels as uColor* then use the union to easily access the channels without trying to work with two index scales between uint and uchar.


#3Khatharr

Posted 13 March 2013 - 08:52 PM

It's 'red byte I'm on' + 'red byte to my right' + 'red byte below me' + 'red byte below me and to my right'.

 

Adding the stride moves you down one row.

 

If you think of a 10x10 grid, the stride is 10. If the grid is represented an array of 100 bytes then index 4 is the 5th cell in the top row. index 4 + stride is index 14, which is the 5th cell in the second row.

 

One way to simplify this kind of process is to use a union to represent a color value:

 

union uColor {
  unint32_t uint;
  struct {
    unsigned char alpha;
    unsigned char green;
    unsigned char blue;
    unsigned char red;
};

You can create a color:

 

uColor col;

 

then reference the uint value:

 

col.uint

 

or a specific channel:

 

col.red

 

You cast an array of texels as uColor* then use the union to easily access the channels without trying to work with two index scales between uint and uchar.


#2Khatharr

Posted 13 March 2013 - 08:35 PM

It's 'red byte I'm on' + 'red byte to my right' + 'red byte below me' + 'red byte below me and to my right'.

 

Adding the stride moves you down one row.

 

If you think of a 10x10 grid, the stride is 10. If the grid is represented an array of 100 bytes then index 4 is the 5th cell in the top row. index 4 + stride is index 14, which is the 5th cell in the second row.


#1Khatharr

Posted 13 March 2013 - 08:35 PM

It's 'red byte I'm on' + 'red byte to my right' + 'red byte below me' + 'red byte below me and to my left'.

 

Adding the stride moves you down one row.

 

If you think of a 10x10 grid, the stride is 10. If the grid is represented an array of 100 bytes then index 4 is the 5th cell in the top row. index 4 + stride is index 14, which is the 5th cell in the second row.


PARTNERS