Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(625)

Side by Side Diff: gpu/command_buffer/build_gles2_cmd_buffer.py

Issue 10535073: Enforce compressed texture restrictions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | gpu/command_buffer/client/gles2_implementation.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """code generator for GLES2 command buffers.""" 6 """code generator for GLES2 command buffers."""
7 7
8 import os 8 import os
9 import os.path 9 import os.path
10 import sys 10 import sys
(...skipping 2401 matching lines...) Expand 10 before | Expand all | Expand 10 after
2412 """Overrriden from TypeHandler.""" 2412 """Overrriden from TypeHandler."""
2413 pass 2413 pass
2414 2414
2415 def WriteGLES2ImplementationHeader(self, func, file): 2415 def WriteGLES2ImplementationHeader(self, func, file):
2416 """Overrriden from TypeHandler.""" 2416 """Overrriden from TypeHandler."""
2417 file.Write("%s %s(%s) {\n" % 2417 file.Write("%s %s(%s) {\n" %
2418 (func.return_type, func.original_name, 2418 (func.return_type, func.original_name,
2419 func.MakeTypedOriginalArgString(""))) 2419 func.MakeTypedOriginalArgString("")))
2420 file.Write(" // TODO: for now this is a no-op\n") 2420 file.Write(" // TODO: for now this is a no-op\n")
2421 file.Write( 2421 file.Write(
2422 " SetGLError(GL_INVALID_OPERATION, \"gl%s not implemented\");\n" % 2422 " SetGLError(GL_INVALID_OPERATION, \"gl%s\", \"not implemented\");\n" %
2423 func.name) 2423 func.name)
2424 if func.return_type != "void": 2424 if func.return_type != "void":
2425 file.Write(" return 0;\n") 2425 file.Write(" return 0;\n")
2426 file.Write("}\n") 2426 file.Write("}\n")
2427 file.Write("\n") 2427 file.Write("\n")
2428 2428
2429 def WriteServiceImplementation(self, func, file): 2429 def WriteServiceImplementation(self, func, file):
2430 """Overrriden from TypeHandler.""" 2430 """Overrriden from TypeHandler."""
2431 file.Write( 2431 file.Write(
2432 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name) 2432 "error::Error GLES2DecoderImpl::Handle%s(\n" % func.name)
2433 file.Write( 2433 file.Write(
2434 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name) 2434 " uint32 immediate_data_size, const gles2::%s& c) {\n" % func.name)
2435 file.Write(" // TODO: for now this is a no-op\n") 2435 file.Write(" // TODO: for now this is a no-op\n")
2436 file.Write( 2436 file.Write(
2437 " SetGLError(GL_INVALID_OPERATION, \"gl%s not implemented\");\n" % 2437 " SetGLError(GL_INVALID_OPERATION, \"gl%s\", \"not implemented\");\n" %
2438 func.name) 2438 func.name)
2439 file.Write(" return error::kNoError;\n") 2439 file.Write(" return error::kNoError;\n")
2440 file.Write("}\n") 2440 file.Write("}\n")
2441 file.Write("\n") 2441 file.Write("\n")
2442 2442
2443 2443
2444 class HandWrittenHandler(CustomHandler): 2444 class HandWrittenHandler(CustomHandler):
2445 """Handler for comands where everything must be written by hand.""" 2445 """Handler for comands where everything must be written by hand."""
2446 2446
2447 def InitFunction(self, func): 2447 def InitFunction(self, func):
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
2738 (impl_decl == None or impl_decl == True)): 2738 (impl_decl == None or impl_decl == True)):
2739 file.Write("%s %s(%s) {\n" % 2739 file.Write("%s %s(%s) {\n" %
2740 (func.return_type, func.original_name, 2740 (func.return_type, func.original_name,
2741 func.MakeTypedOriginalArgString(""))) 2741 func.MakeTypedOriginalArgString("")))
2742 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n") 2742 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
2743 func.WriteDestinationInitalizationValidation(file) 2743 func.WriteDestinationInitalizationValidation(file)
2744 self.WriteClientGLCallLog(func, file) 2744 self.WriteClientGLCallLog(func, file)
2745 for arg in func.GetOriginalArgs(): 2745 for arg in func.GetOriginalArgs():
2746 arg.WriteClientSideValidationCode(file, func) 2746 arg.WriteClientSideValidationCode(file, func)
2747 code = """ if (Is%(type)sReservedId(%(id)s)) { 2747 code = """ if (Is%(type)sReservedId(%(id)s)) {
2748 SetGLError(GL_INVALID_OPERATION, "%(name)s: %(id)s reserved id"); 2748 SetGLError(GL_INVALID_OPERATION, "%(name)s\", \"%(id)s reserved id");
2749 return; 2749 return;
2750 } 2750 }
2751 Bind%(type)sHelper(%(arg_string)s); 2751 Bind%(type)sHelper(%(arg_string)s);
2752 helper_->%(name)s(%(arg_string)s); 2752 helper_->%(name)s(%(arg_string)s);
2753 } 2753 }
2754 2754
2755 """ 2755 """
2756 file.Write(code % { 2756 file.Write(code % {
2757 'name': func.name, 2757 'name': func.name,
2758 'arg_string': func.MakeOriginalArgString(""), 2758 'arg_string': func.MakeOriginalArgString(""),
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
3386 return error::kInvalidArguments; 3386 return error::kInvalidArguments;
3387 } 3387 }
3388 CopyRealGLErrorsToWrapper(); 3388 CopyRealGLErrorsToWrapper();
3389 """ 3389 """
3390 file.Write(code) 3390 file.Write(code)
3391 func.WriteHandlerImplementation(file) 3391 func.WriteHandlerImplementation(file)
3392 code = """ GLenum error = glGetError(); 3392 code = """ GLenum error = glGetError();
3393 if (error == GL_NO_ERROR) { 3393 if (error == GL_NO_ERROR) {
3394 result->SetNumResults(num_values); 3394 result->SetNumResults(num_values);
3395 } else { 3395 } else {
3396 SetGLError(error, NULL); 3396 SetGLError(error, "", "");
3397 } 3397 }
3398 return error::kNoError; 3398 return error::kNoError;
3399 } 3399 }
3400 3400
3401 """ 3401 """
3402 file.Write(code) 3402 file.Write(code)
3403 3403
3404 def WriteGLES2ImplementationHeader(self, func, file): 3404 def WriteGLES2ImplementationHeader(self, func, file):
3405 """Overrriden from TypeHandler.""" 3405 """Overrriden from TypeHandler."""
3406 impl_decl = func.GetInfo('impl_decl') 3406 impl_decl = func.GetInfo('impl_decl')
(...skipping 1310 matching lines...) Expand 10 before | Expand all | Expand 10 after
4717 return 0 4717 return 0
4718 return 1 4718 return 1
4719 4719
4720 def GetInvalidArg(self, offset, index): 4720 def GetInvalidArg(self, offset, index):
4721 """overridden from Argument.""" 4721 """overridden from Argument."""
4722 return ("-1", "kNoError", "GL_INVALID_VALUE") 4722 return ("-1", "kNoError", "GL_INVALID_VALUE")
4723 4723
4724 def WriteValidationCode(self, file, func): 4724 def WriteValidationCode(self, file, func):
4725 """overridden from Argument.""" 4725 """overridden from Argument."""
4726 file.Write(" if (%s < 0) {\n" % self.name) 4726 file.Write(" if (%s < 0) {\n" % self.name)
4727 file.Write(" SetGLError(GL_INVALID_VALUE, \"gl%s: %s < 0\");\n" % 4727 file.Write(" SetGLError(GL_INVALID_VALUE, \"gl%s\", \"%s < 0\");\n" %
4728 (func.original_name, self.name)) 4728 (func.original_name, self.name))
4729 file.Write(" return error::kNoError;\n") 4729 file.Write(" return error::kNoError;\n")
4730 file.Write(" }\n") 4730 file.Write(" }\n")
4731 4731
4732 def WriteClientSideValidationCode(self, file, func): 4732 def WriteClientSideValidationCode(self, file, func):
4733 """overridden from Argument.""" 4733 """overridden from Argument."""
4734 file.Write(" if (%s < 0) {\n" % self.name) 4734 file.Write(" if (%s < 0) {\n" % self.name)
4735 file.Write(" SetGLError(GL_INVALID_VALUE, \"gl%s: %s < 0\");\n" % 4735 file.Write(" SetGLError(GL_INVALID_VALUE, \"gl%s\", \"%s < 0\");\n" %
4736 (func.original_name, self.name)) 4736 (func.original_name, self.name))
4737 file.Write(" return;\n") 4737 file.Write(" return;\n")
4738 file.Write(" }\n") 4738 file.Write(" }\n")
4739 4739
4740 4740
4741 class SizeNotNegativeArgument(SizeArgument): 4741 class SizeNotNegativeArgument(SizeArgument):
4742 """class for GLsizeiNotNegative. It's NEVER allowed to be negative""" 4742 """class for GLsizeiNotNegative. It's NEVER allowed to be negative"""
4743 4743
4744 def __init__(self, name, type, gl_type): 4744 def __init__(self, name, type, gl_type):
4745 SizeArgument.__init__(self, name, gl_type) 4745 SizeArgument.__init__(self, name, gl_type)
4746 4746
4747 def GetInvalidArg(self, offset, index): 4747 def GetInvalidArg(self, offset, index):
4748 """overridden from SizeArgument.""" 4748 """overridden from SizeArgument."""
4749 return ("-1", "kOutOfBounds", "GL_NO_ERROR") 4749 return ("-1", "kOutOfBounds", "GL_NO_ERROR")
4750 4750
4751 def WriteValidationCode(self, file, func): 4751 def WriteValidationCode(self, file, func):
4752 """overridden from SizeArgument.""" 4752 """overridden from SizeArgument."""
4753 pass 4753 pass
4754 #file.Write(" if (%s < 0) {\n" % self.name)
4755 #file.Write(" SetGLError(GL_INVALID_VALUE, \"gl%s: %s < 0\");\n" %
4756 # (func.original_name, self.name))
4757 #file.Write(" return error::kNoError;\n")
4758 #file.Write(" }\n")
4759 4754
4760 4755
4761 class EnumBaseArgument(Argument): 4756 class EnumBaseArgument(Argument):
4762 """Base class for EnumArgument, IntArgument and ValidatedBoolArgument""" 4757 """Base class for EnumArgument, IntArgument and ValidatedBoolArgument"""
4763 4758
4764 def __init__(self, name, gl_type, type, gl_error): 4759 def __init__(self, name, gl_type, type, gl_error):
4765 Argument.__init__(self, name, gl_type) 4760 Argument.__init__(self, name, gl_type)
4766 4761
4767 self.local_type = type 4762 self.local_type = type
4768 self.gl_error = gl_error 4763 self.gl_error = gl_error
4769 name = type[len(gl_type):] 4764 name = type[len(gl_type):]
4770 self.type_name = name 4765 self.type_name = name
4771 self.enum_info = _ENUM_LISTS[name] 4766 self.enum_info = _ENUM_LISTS[name]
4772 4767
4773 def WriteValidationCode(self, file, func): 4768 def WriteValidationCode(self, file, func):
4774 file.Write(" if (!validators_->%s.IsValid(%s)) {\n" % 4769 file.Write(" if (!validators_->%s.IsValid(%s)) {\n" %
4775 (ToUnderscore(self.type_name), self.name)) 4770 (ToUnderscore(self.type_name), self.name))
4776 file.Write(" SetGLError(%s, \"gl%s: %s %s\");\n" % 4771 file.Write(" SetGLError(%s, \"gl%s\", \"%s %s\");\n" %
4777 (self.gl_error, func.original_name, self.name, self.gl_error)) 4772 (self.gl_error, func.original_name, self.name, self.gl_error))
4778 file.Write(" return error::kNoError;\n") 4773 file.Write(" return error::kNoError;\n")
4779 file.Write(" }\n") 4774 file.Write(" }\n")
4780 4775
4781 def GetValidArg(self, func, offset, index): 4776 def GetValidArg(self, func, offset, index):
4782 valid_arg = func.GetValidArg(offset) 4777 valid_arg = func.GetValidArg(offset)
4783 if valid_arg != None: 4778 if valid_arg != None:
4784 return valid_arg 4779 return valid_arg
4785 if 'valid' in self.enum_info: 4780 if 'valid' in self.enum_info:
4786 valid = self.enum_info['valid'] 4781 valid = self.enum_info['valid']
(...skipping 1478 matching lines...) Expand 10 before | Expand all | Expand 10 after
6265 gen.WriteCommonUtilsImpl("common/gles2_cmd_utils_implementation_autogen.h") 6260 gen.WriteCommonUtilsImpl("common/gles2_cmd_utils_implementation_autogen.h")
6266 6261
6267 if gen.errors > 0: 6262 if gen.errors > 0:
6268 print "%d errors" % gen.errors 6263 print "%d errors" % gen.errors
6269 return 1 6264 return 1
6270 return 0 6265 return 0
6271 6266
6272 6267
6273 if __name__ == '__main__': 6268 if __name__ == '__main__':
6274 sys.exit(main(sys.argv[1:])) 6269 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/client/gles2_implementation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698