Ejemplo n.º 1
0
void R3PointLight::
Draw(int i) const
{
    // Draw light
    GLenum index = (GLenum) (GL_LIGHT2 + i);
    if (index > GL_LIGHT7) return;
    GLfloat buffer[4];
    buffer[0] = Intensity() * Color().R();
    buffer[1] = Intensity() * Color().G();
    buffer[2] = Intensity() * Color().B();
    buffer[3] = 1.0;
    glLightfv(index, GL_DIFFUSE, buffer);
    glLightfv(index, GL_SPECULAR, buffer);
    buffer[0] = Position().X();
    buffer[1] = Position().Y();
    buffer[2] = Position().Z();
    buffer[3] = 1.0;
    glLightfv(index, GL_POSITION, buffer);
    buffer[0] = 180.0;
    glLightf(index, GL_SPOT_CUTOFF, buffer[0]);
    glEnable(index);
    buffer[0] = ConstantAttenuation();
    buffer[1] = LinearAttenuation();
    buffer[2] = QuadraticAttenuation();
    glLightf(index, GL_CONSTANT_ATTENUATION, buffer[0]);
    glLightf(index, GL_LINEAR_ATTENUATION, buffer[1]);
    glLightf(index, GL_QUADRATIC_ATTENUATION, buffer[2]);
}
Ejemplo n.º 2
0
int VFmodSoundResource::GetAdditionalOutputString(char *szDestBuffer, int iMaxChars)
{
  szDestBuffer[0] = 0;
  char *szStart = szDestBuffer;

  if (Is2D()) 
    szDestBuffer += sprintf(szDestBuffer,"2D;"); 
  else 
    szDestBuffer += sprintf(szDestBuffer,"3D;");
  if (LinearAttenuation()) 
    szDestBuffer += sprintf(szDestBuffer,"linear;"); 
  else 
    szDestBuffer += sprintf(szDestBuffer,"log;");
  if (IsStreaming()) 
    szDestBuffer += sprintf(szDestBuffer,"streaming;");

  return int(szDestBuffer-szStart);
}