~canonical-dx-team/nux/nux.fix-702538

« back to all changes in this revision

Viewing changes to NuxGraphics/IOpenGLGLSLShader.cpp

  • Committer: Jay Taoko
  • Date: 2011-01-04 03:57:29 UTC
  • mfrom: (157.1.13 nux-holidays)
  • Revision ID: jay.taoko@canonical.com-20110104035729-0xh3iabo7e7dk371
* Added support to copy a texture from the current render target
* Blur, Color matrix, Exponent shaders
* Gaussian blur
* Bug fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
394
394
    NString PixelShaderSource;
395
395
    ExtractShaderString3 (TEXT ("[Fragment Shader]"), ShaderCode, PixelShaderSource, NString (FrgShaderPreprocessorDefines) );
396
396
 
397
 
    IntrusiveSP<IOpenGLVertexShader> vs = GetThreadGLDeviceFactory()->CreateVertexShader(); //new IOpenGLVertexShader;
398
 
    IntrusiveSP<IOpenGLPixelShader> ps = GetThreadGLDeviceFactory()->CreatePixelShader(); //new IOpenGLPixelShader;
 
397
    ObjectPtr<IOpenGLVertexShader> vs = GetGpuDevice()->CreateVertexShader(); //new IOpenGLVertexShader;
 
398
    ObjectPtr<IOpenGLPixelShader> ps = GetGpuDevice()->CreatePixelShader(); //new IOpenGLPixelShader;
399
399
 
400
400
    vs->SetShaderCode (&VertexShaderSource[0]);
401
401
    ps->SetShaderCode (&PixelShaderSource[0]);
412
412
  {
413
413
    nuxAssertMsg (glslshader, TEXT ("[IOpenGLShaderProgram::LoadVertexShader] Invalid shader code.") );
414
414
    NUX_RETURN_IF_NULL (glslshader);
415
 
    IntrusiveSP<IOpenGLVertexShader> vs = GetThreadGLDeviceFactory()->CreateVertexShader(); //new IOpenGLVertexShader;
 
415
    ObjectPtr<IOpenGLVertexShader> vs = GetGpuDevice()->CreateVertexShader(); //new IOpenGLVertexShader;
416
416
 
417
417
    NString ProcessedShaderSource;
418
418
    NString Defines (VtxShaderPreprocessorDefines);
427
427
  {
428
428
    nuxAssertMsg (glslshader, TEXT ("[IOpenGLShaderProgram::LoadPixelShader] Invalid shader code.") );
429
429
    NUX_RETURN_IF_NULL (glslshader);
430
 
    IntrusiveSP<IOpenGLPixelShader> ps = GetThreadGLDeviceFactory()->CreatePixelShader(); //new IOpenGLPixelShader;
 
430
    ObjectPtr<IOpenGLPixelShader> ps = GetGpuDevice()->CreatePixelShader(); //new IOpenGLPixelShader;
431
431
 
432
432
    NString ProcessedShaderSource;
433
433
    NString Defines (FrgShaderPreprocessorDefines);
438
438
    AddShaderObject (ps);
439
439
  }
440
440
 
441
 
  void IOpenGLShaderProgram::AddShaderObject (IntrusiveSP<IOpenGLShader> ShaderObject)
 
441
  void IOpenGLShaderProgram::AddShaderObject (ObjectPtr<IOpenGLShader> ShaderObject)
442
442
  {
443
443
    ShaderObjectList.push_back (ShaderObject);
444
444
  }
452
452
    CheckUniformLocation();
453
453
  }
454
454
 
455
 
  void IOpenGLShaderProgram::RemoveShaderObject (IntrusiveSP<IOpenGLShader> ShaderObject)
 
455
  void IOpenGLShaderProgram::RemoveShaderObject (ObjectPtr<IOpenGLShader> ShaderObject)
456
456
  {
457
 
    std::vector< IntrusiveSP<IOpenGLShader> >::iterator it = find (ShaderObjectList.begin(), ShaderObjectList.end(), ShaderObject);
 
457
    std::vector< ObjectPtr<IOpenGLShader> >::iterator it = find (ShaderObjectList.begin(), ShaderObjectList.end(), ShaderObject);
458
458
 
459
459
    if (it != ShaderObjectList.end() )
460
460
    {