• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright (c) 2012 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 // ShaderExecutable.h: Defines a renderer-agnostic class to contain shader
8 // executable implementation details.
9 
10 #ifndef LIBGLESV2_RENDERER_SHADEREXECUTABLE_H_
11 #define LIBGLESV2_RENDERER_SHADEREXECUTABLE_H_
12 
13 #include "common/angleutils.h"
14 
15 namespace rx
16 {
17 
18 class ShaderExecutable
19 {
20   public:
ShaderExecutable(const void * function,size_t length)21     ShaderExecutable(const void *function, size_t length) : mLength(length)
22     {
23         mFunction = new char[length];
24         memcpy(mFunction, function, length);
25     }
26 
~ShaderExecutable()27     virtual ~ShaderExecutable()
28     {
29         delete[] mFunction;
30     }
31 
getFunction()32     void *getFunction() const
33     {
34         return mFunction;
35     }
36 
getLength()37     size_t getLength() const
38     {
39         return mLength;
40     }
41 
42   private:
43     DISALLOW_COPY_AND_ASSIGN(ShaderExecutable);
44 
45     void *mFunction;
46     const size_t mLength;
47 };
48 
49 }
50 
51 #endif // LIBGLESV2_RENDERER_SHADEREXECUTABLE9_H_
52