Home | History | Annotate | Download | only in GenericCodeGen
      1 //
      2 // Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
      3 // All rights reserved.
      4 //
      5 // Redistribution and use in source and binary forms, with or without
      6 // modification, are permitted provided that the following conditions
      7 // are met:
      8 //
      9 //    Redistributions of source code must retain the above copyright
     10 //    notice, this list of conditions and the following disclaimer.
     11 //
     12 //    Redistributions in binary form must reproduce the above
     13 //    copyright notice, this list of conditions and the following
     14 //    disclaimer in the documentation and/or other materials provided
     15 //    with the distribution.
     16 //
     17 //    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
     18 //    contributors may be used to endorse or promote products derived
     19 //    from this software without specific prior written permission.
     20 //
     21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     24 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     25 // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     26 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     27 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     28 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     29 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     30 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     31 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     32 // POSSIBILITY OF SUCH DAMAGE.
     33 //
     34 
     35 //
     36 // The top level algorithms for linking multiple
     37 // shaders together.
     38 //
     39 #include "../Include/Common.h"
     40 #include "../Include/ShHandle.h"
     41 
     42 //
     43 // Actual link object, derived from the shader handle base classes.
     44 //
     45 class TGenericLinker : public TLinker {
     46 public:
     47     TGenericLinker(EShExecutable e, int dOptions) : TLinker(e, infoSink), debugOptions(dOptions) { }
     48     bool link(TCompilerList&, TUniformMap*) { return true; }
     49     void getAttributeBindings(ShBindingTable const **) const { }
     50     TInfoSink infoSink;
     51     int debugOptions;
     52 };
     53 
     54 //
     55 // The internal view of a uniform/float object exchanged with the driver.
     56 //
     57 class TUniformLinkedMap : public TUniformMap {
     58 public:
     59     TUniformLinkedMap() { }
     60     virtual int getLocation(const char*) { return 0; }
     61 };
     62 
     63 TShHandleBase* ConstructLinker(EShExecutable executable, int debugOptions)
     64 {
     65     return new TGenericLinker(executable, debugOptions);
     66 }
     67 
     68 void DeleteLinker(TShHandleBase* linker)
     69 {
     70     delete linker;
     71 }
     72 
     73 TUniformMap* ConstructUniformMap()
     74 {
     75     return new TUniformLinkedMap();
     76 }
     77 
     78 void DeleteUniformMap(TUniformMap* map)
     79 {
     80     delete map;
     81 }
     82 
     83 TShHandleBase* ConstructBindings()
     84 {
     85     return 0;
     86 }
     87 
     88 void DeleteBindingList(TShHandleBase* bindingList)
     89 {
     90     delete bindingList;
     91 }
     92