Home | History | Annotate | Download | only in translator
      1 //
      2 // Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
      3 // Use of this source code is governed by a BSD-style license that can be
      4 // found in the LICENSE file.
      5 //
      6 
      7 #include "compiler/translator/TranslatorESSL.h"
      8 #include "compiler/translator/TranslatorGLSL.h"
      9 #include "compiler/translator/TranslatorHLSL.h"
     10 
     11 //
     12 // This function must be provided to create the actual
     13 // compile object used by higher level code.  It returns
     14 // a subclass of TCompiler.
     15 //
     16 TCompiler* ConstructCompiler(
     17     ShShaderType type, ShShaderSpec spec, ShShaderOutput output)
     18 {
     19     switch (output) {
     20     case SH_ESSL_OUTPUT:
     21         return new TranslatorESSL(type, spec);
     22     case SH_GLSL_OUTPUT:
     23         return new TranslatorGLSL(type, spec);
     24     case SH_HLSL9_OUTPUT:
     25     case SH_HLSL11_OUTPUT:
     26         return new TranslatorHLSL(type, spec, output);
     27     default:
     28         return NULL;
     29     }
     30 }
     31 
     32 //
     33 // Delete the compiler made by ConstructCompiler
     34 //
     35 void DeleteCompiler(TCompiler* compiler)
     36 {
     37     delete compiler;
     38 }
     39