Lines Matching refs:Write

2740   def Write(self, string):
2782 self.Write(_LICENSE)
2783 self.Write(_DO_NOT_EDIT_WARNING)
2785 self.Write(file_comment)
2786 self.Write("#ifndef %s\n" % self.guard)
2787 self.Write("#define %s\n\n" % self.guard)
2790 self.Write("#endif // %s\n\n" % self.guard)
2814 file.Write(comment)
2815 file.Write("struct %s {\n" % func.name)
2816 file.Write(" typedef %s ValueType;\n" % func.name)
2817 file.Write(" static const CommandId kCmdId = k%s;\n" % func.name)
2820 file.Write("\n")
2824 file.Write(" typedef %s Result;\n\n" % result[0])
2826 file.Write(" struct Result {\n")
2828 file.Write(" %s;\n" % line)
2829 file.Write(" };\n\n")
2836 file.Write(" gpu::CommandHeader header;\n")
2839 file.Write(" %s %s;\n" % (arg.cmd_type, arg.name))
2843 file.Write(" static const %s %s = %s;\n" %
2846 file.Write("};\n")
2847 file.Write("\n")
2850 file.Write("COMPILE_ASSERT(sizeof(%s) == %d,\n" % (func.name, size))
2851 file.Write(" Sizeof_%s_is_not_%d);\n" % (func.name, size))
2852 file.Write("COMPILE_ASSERT(offsetof(%s, header) == 0,\n" % func.name)
2853 file.Write(" OffsetOf_%s_header_not_0);\n" % func.name)
2856 file.Write("COMPILE_ASSERT(offsetof(%s, %s) == %d,\n" %
2858 file.Write(" OffsetOf_%s_%s_not_%d);\n" %
2870 file.Write((check.strip() + "\n") % {
2876 file.Write("\n")
2880 file.Write(" %s(%s);\n" %
2885 file.Write(" EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);\n")
2889 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
2890 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" %
2892 file.Write(" void* next_cmd = cmd.Set(\n")
2893 file.Write(" &cmd")
2896 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11))
2897 file.Write(");\n")
2898 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" %
2900 file.Write(" cmd.header.command);\n")
2903 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
2905 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
2906 file.Write(" next_cmd, sizeof(cmd));\n")
2907 file.Write("}\n")
2908 file.Write("\n")
2924 file.Write(" // TODO(gman): Compute correct size.\n")
2925 file.Write(" EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);\n")
2929 file.Write(" %s(%s);\n" %
2934 file.Write(" %s(%s);\n" %
2939 file.Write("""error::Error GLES2DecoderImpl::Handle%(name)s(
2960 file.Write(" return error::kNoError;\n")
2961 file.Write("}\n")
2962 file.Write("\n")
2977 file.Write(" return error::kNoError;\n")
2978 file.Write("}\n")
2979 file.Write("\n")
2994 file.Write(" return error::kNoError;\n")
2995 file.Write("}\n")
2996 file.Write("\n")
3000 file.Write(" if (!features().%s) {\n" % func.GetInfo('extension_flag'))
3001 file.Write(" LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, \"gl%s\","
3003 file.Write(" return error::kNoError;")
3004 file.Write(" }\n\n")
3011 file.Write(" error::Error error;\n")
3013 file.Write(" error = WillAccessBoundFramebufferForDraw();\n")
3014 file.Write(" if (error != error::kNoError)\n")
3015 file.Write(" return error;\n")
3017 file.Write(" error = WillAccessBoundFramebufferForRead();\n")
3018 file.Write(" if (error != error::kNoError)\n")
3019 file.Write(" return error;\n")
3047 file.Write(test % vars)
3092 file.Write(test % vars)
3145 file.Write("// TODO(gman): %s\n" % func.name)
3153 file.Write("// TODO(gman): %s\n" % func.name)
3157 file.Write("// TODO(gman): %s\n" % func.name)
3163 file.Write("virtual %s %s(%s) OVERRIDE;\n" %
3166 file.Write("\n")
3169 file.Write("%s GLES2%s(%s) {\n" %
3175 file.Write(" %sgles2::GetGLContext()->%s(%s);\n" %
3178 file.Write("}\n")
3182 file.Write("#define gl%s GLES2_GET_FUN(%s)\n" %(func.name, func.name))
3189 file.Write(
3196 file.Write(' GPU_CLIENT_LOG("return:" << result)\n')
3204 file.Write("virtual %s %s(%s) OVERRIDE;\n" %
3210 file.Write("%s GLES2TraceImplementation::%s(%s) {\n" %
3216 file.Write(' TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::%s");\n' %
3218 file.Write(" %sgl_->%s(%s);\n" %
3220 file.Write("}\n")
3221 file.Write("\n")
3232 file.Write("%s GLES2Implementation::%s(%s) {\n" %
3235 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
3240 file.Write(" helper_->%s(%s);\n" %
3242 file.Write(" CheckGLError();\n")
3244 file.Write("}\n")
3245 file.Write("\n")
3249 file.Write("virtual %s %s(%s) = 0;\n" %
3255 file.Write("virtual %s %s(%s) OVERRIDE;\n" %
3264 file.Write("%s GLES2InterfaceStub::%s(%s) {\n" %
3267 file.Write(" return 0;\n")
3268 file.Write("}\n")
3295 file.Write(code % {
3321 file.Write(code % {
3329 file.Write("// TODO: Implement unit test for %s\n" % func.name)
3337 file.Write(' TRACE_EVENT0("gpu", "GLES2Implementation::%s");\n' %
3342 file.Write(" static uint32_t ComputeSize(uint32_t size_in_bytes) {\n")
3343 file.Write(" return static_cast<uint32_t>(\n")
3344 file.Write(" sizeof(ValueType) + // NOLINT\n")
3345 file.Write(" RoundSizeToMultipleOfEntries(size_in_bytes));\n")
3346 file.Write(" }\n")
3347 file.Write("\n")
3351 file.Write(" void SetHeader(uint32_t size_in_bytes) {\n")
3352 file.Write(" header.SetCmdByTotalSize<ValueType>(size_in_bytes);\n")
3353 file.Write(" }\n")
3354 file.Write("\n")
3374 file.Write(code % {
3392 file.Write(code % {
3425 file.Write(" if (%s) {\n" % " ||\n ".join(code))
3426 file.Write(
3430 file.Write(" return error::kNoError;\n")
3431 file.Write(" }\n")
3435 file.Write(" if (%s) {\n" % " ||\n ".join(code))
3437 file.Write(" state_.%s = %s;\n" % (item['name'], args[ndx].name))
3439 file.Write(" %s = true;\n" % state['state_flag'])
3443 file.Write(" state_.%s = %s;\n" %
3445 file.Write(" %s(%s);\n" %
3447 file.Write(" }\n")
3482 file.Write(valid_test % vars)
3507 file.Write(valid_test % vars)
3526 file.Write(" if (%s) {\n" % " ||\n ".join(code))
3528 file.Write(" state_.%s = %s;\n" %
3531 file.Write(" %s = true;\n" % state['state_flag'])
3533 file.Write(" %s(%s);\n" %
3535 file.Write(" }\n")
3552 file.Write(" bool changed = false;\n")
3554 file.Write(" if (%s == %s || %s == GL_FRONT_AND_BACK) {\n" %
3559 file.Write(" changed |= %s;\n" % " ||\n ".join(code))
3560 file.Write(" }\n")
3561 file.Write(" if (changed) {\n")
3563 file.Write(" if (%s == %s || %s == GL_FRONT_AND_BACK) {\n" %
3566 file.Write(" state_.%s = %s;\n" %
3568 file.Write(" }\n")
3570 file.Write(" %s = true;\n" % state['state_flag'])
3572 file.Write(" %s(%s);\n" %
3574 file.Write(" }\n")
3594 file.Write(" if (%s) {\n" % " ||\n ".join(code))
3597 file.Write(" state_.%s = %s;\n" % (item['name'], args[ndx].name))
3599 file.Write(" %s = true;\n" % state['state_flag'])
3601 file.Write(" %s(%s);\n" %
3603 file.Write(" }\n")
3620 file.Write(" switch (%s) {\n" % args[0].name)
3622 file.Write(" case %s:\n" % state['enum'])
3623 file.Write(" if (state_.%s != %s) {\n" %
3625 file.Write(" state_.%s = %s;\n" % (state['name'], args[1].name))
3627 file.Write(" %s(%s);\n" %
3629 file.Write(" }\n")
3630 file.Write(" break;\n")
3631 file.Write(" default:\n")
3632 file.Write(" NOTREACHED();\n")
3633 file.Write(" }\n")
3656 file.Write("// TODO(gman): %s\n\n" % func.name)
3660 file.Write("// TODO(gman): %s\n\n" % func.name)
3664 file.Write(
3669 file.Write(" void Init(%s) {\n" % func.MakeTypedCmdArgString("_"))
3671 file.Write(" SetHeader(total_size);\n")
3674 file.Write(" %s = _%s;\n" % (arg.name, arg.name))
3675 file.Write(" }\n")
3676 file.Write("\n")
3681 file.Write(" void* Set(void* cmd%s) {\n" %
3684 file.Write(" static_cast<ValueType*>(cmd)->Init(%s);\n" % copy_args)
3685 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>("
3687 file.Write(" }\n")
3688 file.Write("\n")
3708 file.Write("%s GLES2Implementation::%s(%s) {\n" %
3711 file.Write(" // TODO: for now this is a no-op\n")
3712 file.Write(
3717 file.Write(" return 0;\n")
3718 file.Write("}\n")
3719 file.Write("\n")
3724 file.Write(" // TODO: for now this is a no-op\n")
3725 file.Write(
3729 file.Write(" return error::kNoError;\n")
3730 file.Write("}\n")
3731 file.Write("\n")
3759 file.Write("// TODO(gman): %s\n\n" % func.name)
3763 file.Write("// TODO(gman): %s\n\n" % func.name)
3767 file.Write("// TODO(gman): %s\n\n" % func.name)
3795 file.Write("// TODO(gman): Write test for %s\n" % func.name)
3799 file.Write("// TODO(gman): Write test for %s\n" % func.name)
3803 file.Write("// TODO(gman): Write test for %s\n" % func.name)
3831 file.Write("// TODO(gman): %s\n\n" % func.name)
3835 file.Write("// TODO(gman): %s\n\n" % func.name)
3843 file.Write("// TODO(gman): Implement test for %s\n" % func.name)
3852 file.Write("virtual %s %s(%s) OVERRIDE;\n" %
3855 file.Write("\n")
3882 file.Write(" uint32_t data_size = size;\n")
3885 file.Write(" uint32_t data_size = imageSize;\n")
3887 file.Write(" Bucket* bucket = GetBucket(c.bucket_id);\n")
3888 file.Write(" uint32_t data_size = bucket->size();\n")
3889 file.Write(" GLsizei imageSize = data_size;\n")
3897 file.Write(code)
3899 file.Write(
3908 file.Write(" EXPECT_EQ(sizeof(cmd), total_size);\n")
3912 file.Write(" void Init(%s) {\n" % func.MakeTypedCmdArgString("_"))
3914 file.Write(" SetHeader(total_size);\n")
3917 file.Write(" %s = _%s;\n" % (arg.name, arg.name))
3918 file.Write(" }\n")
3919 file.Write("\n")
3924 file.Write(" void* Set(void* cmd%s) {\n" %
3927 file.Write(" static_cast<ValueType*>(cmd)->Init(%s);\n" % copy_args)
3928 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>("
3930 file.Write(" }\n")
3931 file.Write("\n")
3936 file.Write("// TODO(gman): Implement test for %s\n" % func.name)
3941 file.Write("// TODO(gman): %s\n\n" % func.name)
3945 file.Write("// TODO(gman): %s\n\n" % func.name)
4044 file.Write("%s GLES2Implementation::%s(%s) {\n" %
4047 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
4072 file.Write(code % {
4107 file.Write(code % {
4131 file.Write(code)
4135 file.Write(" if (!%sHelper(n, %s)) {\n"
4142 file.Write(" if (!%sHelper(n, %s)) {\n"
4163 file.Write(
4193 file.Write(code % args)
4214 file.Write(code % {
4286 file.Write(" static uint32_t ComputeDataSize(GLsizei n) {\n")
4287 file.Write(
4289 file.Write(" }\n")
4290 file.Write("\n")
4291 file.Write(" static uint32_t ComputeSize(GLsizei n) {\n")
4292 file.Write(" return static_cast<uint32_t>(\n")
4293 file.Write(" sizeof(ValueType) + ComputeDataSize(n)); // NOLINT\n")
4294 file.Write(" }\n")
4295 file.Write("\n")
4299 file.Write(" void SetHeader(GLsizei n) {\n")
4300 file.Write(" header.SetCmdByTotalSize<ValueType>(ComputeSize(n));\n")
4301 file.Write(" }\n")
4302 file.Write("\n")
4307 file.Write(" void Init(%s, %s _%s) {\n" %
4310 file.Write(" SetHeader(_n);\n")
4313 file.Write(" %s = _%s;\n" % (arg.name, arg.name))
4314 file.Write(" memcpy(ImmediateDataAddress(this),\n")
4315 file.Write(" _%s, ComputeDataSize(_n));\n" % last_arg.name)
4316 file.Write(" }\n")
4317 file.Write("\n")
4323 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" %
4326 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" %
4328 file.Write(" const uint32_t size = ComputeSize(_n);\n")
4329 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>("
4331 file.Write(" }\n")
4332 file.Write("\n")
4346 file.Write(code % {
4354 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
4355 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n")
4356 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" %
4358 file.Write(" void* next_cmd = cmd.Set(\n")
4359 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n")
4360 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" %
4362 file.Write(" cmd.header.command);\n")
4363 file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
4364 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n")
4365 file.Write(" cmd.header.size * 4u);\n")
4366 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n");
4367 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
4368 file.Write(" next_cmd, sizeof(cmd) +\n")
4369 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n")
4370 file.Write(" // TODO(gman): Check that ids were inserted;\n")
4371 file.Write("}\n")
4372 file.Write("\n")
4421 file.Write(" uint32_t client_id = c.client_id;\n")
4422 file.Write(" if (!%sHelper(%s)) {\n" %
4424 file.Write(" return error::kInvalidArguments;\n")
4425 file.Write(" }\n")
4429 file.Write("%s GLES2Implementation::%s(%s) {\n" %
4432 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
4437 file.Write(" GLuint client_id;\n")
4438 file.Write(
4440 file.Write(" MakeIds(this, 0, 1, &client_id);\n")
4441 file.Write(" helper_->%s(%s);\n" %
4443 file.Write(' GPU_CLIENT_LOG("returned " << client_id);\n')
4444 file.Write(" CheckGLError();\n")
4445 file.Write(" return client_id;\n")
4446 file.Write("}\n")
4447 file.Write("\n")
4462 file.Write("%s GLES2Implementation::%s(%s) {\n" %
4465 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
4470 file.Write(
4472 file.Write(" %sHelper(%s);\n" %
4474 file.Write(" CheckGLError();\n")
4475 file.Write("}\n")
4476 file.Write("\n")
4492 file.Write(code)
4511 file.Write(code % {
4585 file.Write(" %sHelper(n, %s);\n" %
4590 file.Write(" %sHelper(n, %s);\n" %
4605 file.Write(
4608 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
4611 file.Write(""" GPU_CLIENT_LOG_CODE_BLOCK({
4617 file.Write(""" GPU_CLIENT_DCHECK_CODE_BLOCK({
4630 file.Write(code % args)
4634 file.Write(" static uint32_t ComputeDataSize(GLsizei n) {\n")
4635 file.Write(
4637 file.Write(" }\n")
4638 file.Write("\n")
4639 file.Write(" static uint32_t ComputeSize(GLsizei n) {\n")
4640 file.Write(" return static_cast<uint32_t>(\n")
4641 file.Write(" sizeof(ValueType) + ComputeDataSize(n)); // NOLINT\n")
4642 file.Write(" }\n")
4643 file.Write("\n")
4647 file.Write(" void SetHeader(GLsizei n) {\n")
4648 file.Write(" header.SetCmdByTotalSize<ValueType>(ComputeSize(n));\n")
4649 file.Write(" }\n")
4650 file.Write("\n")
4655 file.Write(" void Init(%s, %s _%s) {\n" %
4658 file.Write(" SetHeader(_n);\n")
4661 file.Write(" %s = _%s;\n" % (arg.name, arg.name))
4662 file.Write(" memcpy(ImmediateDataAddress(this),\n")
4663 file.Write(" _%s, ComputeDataSize(_n));\n" % last_arg.name)
4664 file.Write(" }\n")
4665 file.Write("\n")
4671 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" %
4674 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" %
4676 file.Write(" const uint32_t size = ComputeSize(_n);\n")
4677 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>("
4679 file.Write(" }\n")
4680 file.Write("\n")
4694 file.Write(code % {
4702 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
4703 file.Write(" static GLuint ids[] = { 12, 23, 34, };\n")
4704 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" %
4706 file.Write(" void* next_cmd = cmd.Set(\n")
4707 file.Write(" &cmd, static_cast<GLsizei>(arraysize(ids)), ids);\n")
4708 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" %
4710 file.Write(" cmd.header.command);\n")
4711 file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
4712 file.Write(" RoundSizeToMultipleOfEntries(cmd.n * 4u),\n")
4713 file.Write(" cmd.header.size * 4u);\n")
4714 file.Write(" EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);\n");
4715 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
4716 file.Write(" next_cmd, sizeof(cmd) +\n")
4717 file.Write(" RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));\n")
4718 file.Write(" // TODO(gman): Check that ids were inserted;\n")
4719 file.Write("}\n")
4720 file.Write("\n")
4749 file.Write(code % {
4761 file.Write(' LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("%s");\n' % func.name)
4762 file.Write(code)
4780 file.Write(code % {'func_name': func.name})
4786 file.Write("%s GLES2Implementation::%s(%s) {\n" %
4789 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
4823 file.Write(code % {
4861 file.Write(code % {
5043 file.Write(code % (self.GetArrayType(func), self.GetArrayCount(func)))
5045 file.Write(" if (data_size > immediate_data_size) {\n")
5046 file.Write(" return error::kOutOfBounds;\n")
5047 file.Write(" }\n")
5054 file.Write("%s GLES2Implementation::%s(%s) {\n" %
5057 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
5064 file.Write(' GPU_CLIENT_LOG("values: " << %s);\n' % values_str)
5067 file.Write(" helper_->%sImmediate(%s);\n" %
5069 file.Write(" CheckGLError();\n")
5070 file.Write("}\n")
5071 file.Write("\n")
5102 file.Write(code % {
5112 file.Write(" static uint32_t ComputeDataSize() {\n")
5113 file.Write(" return static_cast<uint32_t>(\n")
5114 file.Write(" sizeof(%s) * %d); // NOLINT\n" %
5116 file.Write(" }\n")
5117 file.Write("\n")
5118 file.Write(" static uint32_t ComputeSize() {\n")
5119 file.Write(" return static_cast<uint32_t>(\n")
5120 file.Write(
5122 file.Write(" }\n")
5123 file.Write("\n")
5127 file.Write(" void SetHeader() {\n")
5128 file.Write(
5130 file.Write(" }\n")
5131 file.Write("\n")
5136 file.Write(" void Init(%s, %s _%s) {\n" %
5139 file.Write(" SetHeader();\n")
5142 file.Write(" %s = _%s;\n" % (arg.name, arg.name))
5143 file.Write(" memcpy(ImmediateDataAddress(this),\n")
5144 file.Write(" _%s, ComputeDataSize());\n" % last_arg.name)
5145 file.Write(" }\n")
5146 file.Write("\n")
5152 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" %
5155 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" %
5157 file.Write(" const uint32_t size = ComputeSize();\n")
5158 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>("
5160 file.Write(" }\n")
5161 file.Write("\n")
5175 file.Write(code % {
5183 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
5184 file.Write(" const int kSomeBaseValueToTestWith = 51;\n")
5185 file.Write(" static %s data[] = {\n" % self.GetArrayType(func))
5187 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" %
5189 file.Write(" };\n")
5190 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" %
5192 file.Write(" void* next_cmd = cmd.Set(\n")
5193 file.Write(" &cmd")
5196 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 11))
5197 file.Write(",\n data);\n")
5199 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n"
5201 file.Write(" cmd.header.command);\n")
5202 file.Write(" EXPECT_EQ(sizeof(cmd) +\n")
5203 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)),\n")
5204 file.Write(" cmd.header.size * 4u);\n")
5206 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
5208 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
5209 file.Write(" next_cmd, sizeof(cmd) +\n")
5210 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
5211 file.Write(" // TODO(gman): Check that data was inserted;\n")
5212 file.Write("}\n")
5213 file.Write("\n")
5314 file.Write(code % (self.GetArrayType(func), self.GetArrayCount(func)))
5316 file.Write(" if (data_size > immediate_data_size) {\n")
5317 file.Write(" return error::kOutOfBounds;\n")
5318 file.Write(" }\n")
5322 file.Write("%s GLES2Implementation::%s(%s) {\n" %
5325 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
5329 file.Write(""" GPU_CLIENT_LOG_CODE_BLOCK({
5336 file.Write(' GPU_CLIENT_LOG(" " << i << ": " << %s);\n' % values_str)
5337 file.Write(" }\n });\n")
5340 file.Write(" helper_->%sImmediate(%s);\n" %
5342 file.Write(" CheckGLError();\n")
5343 file.Write("}\n")
5344 file.Write("\n")
5377 file.Write(code % {
5419 file.Write(code % {
5432 file.Write(" static uint32_t ComputeDataSize(GLsizei count) {\n")
5433 file.Write(" return static_cast<uint32_t>(\n")
5434 file.Write(" sizeof(%s) * %d * count); // NOLINT\n" %
5436 file.Write(" }\n")
5437 file.Write("\n")
5438 file.Write(" static uint32_t ComputeSize(GLsizei count) {\n")
5439 file.Write(" return static_cast<uint32_t>(\n")
5440 file.Write(
5442 file.Write(" }\n")
5443 file.Write("\n")
5447 file.Write(" void SetHeader(GLsizei count) {\n")
5448 file.Write(
5450 file.Write(" }\n")
5451 file.Write("\n")
5456 file.Write(" void Init(%s, %s _%s) {\n" %
5459 file.Write(" SetHeader(_count);\n")
5462 file.Write(" %s = _%s;\n" % (arg.name, arg.name))
5463 file.Write(" memcpy(ImmediateDataAddress(this),\n")
5464 file.Write(" _%s, ComputeDataSize(_count));\n" % last_arg.name)
5465 file.Write(" }\n")
5466 file.Write("\n")
5472 file.Write(" void* Set(void* cmd%s, %s _%s) {\n" %
5475 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _%s);\n" %
5477 file.Write(" const uint32_t size = ComputeSize(_count);\n")
5478 file.Write(" return NextImmediateCmdAddressTotalSize<ValueType>("
5480 file.Write(" }\n")
5481 file.Write("\n")
5495 file.Write(code % {
5508 file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name)
5509 file.Write(" const int kSomeBaseValueToTestWith = 51;\n")
5510 file.Write(" static %s data[] = {\n" % self.GetArrayType(func))
5512 file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" %
5514 file.Write(" };\n")
5515 file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" %
5517 file.Write(" const GLsizei kNumElements = %d;\n" % count_param)
5518 file.Write(" const size_t kExpectedCmdSize =\n")
5519 file.Write(" sizeof(cmd) + kNumElements * sizeof(%s) * %d;\n" %
5521 file.Write(" void* next_cmd = cmd.Set(\n")
5522 file.Write(" &cmd")
5524 file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 1))
5525 file.Write(",\n data);\n")
5526 file.Write(" EXPECT_EQ(static_cast<uint32_t>(cmds::%s::kCmdId),\n" %
5528 file.Write(" cmd.header.command);\n")
5529 file.Write(" EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u);\n")
5531 file.Write(" EXPECT_EQ(static_cast<%s>(%d), cmd.%s);\n" %
5533 file.Write(" CheckBytesWrittenMatchesExpectedSize(\n")
5534 file.Write(" next_cmd, sizeof(cmd) +\n")
5535 file.Write(" RoundSizeToMultipleOfEntries(sizeof(data)));\n")
5536 file.Write(" // TODO(gman): Check that data was inserted;\n")
5537 file.Write("}\n")
5538 file.Write("\n")
5558 file.Write(code % {
5610 file.Write(" static uint32_t ComputeSize(uint32_t data_size) {\n")
5611 file.Write(" return static_cast<uint32_t>(\n")
5612 file.Write(" sizeof(ValueType) + data_size); // NOLINT\n")
5613 file.Write(" }\n")
5622 file.Write(code)
5639 file.Write(code % {
5648 file.Write(" void* Set(void* cmd%s, uint32_t _data_size) {\n" %
5650 file.Write(" static_cast<ValueType*>(cmd)->Init(%s, _data_size);\n" %
5652 file.Write(" return NextImmediateCmdAddress<ValueType>("
5654 file.Write(" }\n")
5655 file.Write("\n")
5669 file.Write(code % {
5713 file.Write(code % {
5742 file.Write("""
5837 file.Write(code % {'func_name': func.name})
5839 file.Write(" *result_dst = %s(%s);\n" %
5841 file.Write(" return error::kNoError;\n")
5842 file.Write("}\n")
5843 file.Write("\n")
5850 file.Write("%s GLES2Implementation::%s(%s) {\n" %
5853 file.Write(" GPU_CLIENT_SINGLE_THREAD_CHECK();\n")
5857 file.Write(" typedef cmds::%s::Result Result;\n" % func.name)
5858 file.Write(" Result* result = GetResultAs<Result*>();\n")
5859 file.Write(" if (!result) {\n")
5860 file.Write(" return %s;\n" % error_value)
5861 file.Write(" }\n")
5862 file.Write(" *result = 0;\n")
5867 file.Write(
5870 file.Write(" WaitForCmd();\n")
5871 file.Write(" %s result_value = *result;\n" % func.return_type)
5872 file.Write(' GPU_CLIENT_LOG("returned " << result_value);\n')
5873 file.Write(" CheckGLError();\n")
5874 file.Write(" return result_value;\n")
5875 file.Write("}\n")
5876 file.Write("\n")
5902 file.Write(code % {
5967 file.Write(code_1 % str_args)
5969 file.Write(code_2 % str_args)
6175 file.Write(" %s %s = static_cast<%s>(c.%s);\n" %
6196 file.Write(
6247 file.Write(code % (self.type, self.name, self.type, self.name))
6277 file.Write(" if (%s < 0) {\n" % self.name)
6278 file.Write(
6281 file.Write(" return error::kNoError;\n")
6282 file.Write(" }\n")
6286 file.Write(" if (%s < 0) {\n" % self.name)
6287 file.Write(
6290 file.Write(" return;\n")
6291 file.Write(" }\n")
6330 file.Write(" if (!validators_->%s.IsValid(%s)) {\n" %
6333 file.Write(
6337 file.Write(
6340 file.Write(" return error::kNoError;\n")
6341 file.Write(" }\n")
6346 file.Write(" if (%s != %s) {" % (self.name,
6348 file.Write(
6352 file.Write(" return;\n")
6354 file.Write(" return %s;\n" % func.GetErrorReturnString())
6355 file.Write(" }\n")
6472 file.Write(
6475 file.Write(" c, data_size, immediate_data_size);\n")
6479 file.Write(" if (%s == NULL) {\n" % self.name)
6480 file.Write(" return error::kOutOfBounds;\n")
6481 file.Write(" }\n")
6508 file.Write(
6575 file.Write(
6578 file.Write(
6584 file.Write(
6587 file.Write(
6593 file.Write(" if (%s == NULL) {\n" % self.name)
6594 file.Write(" return error::kOutOfBounds;\n")
6595 file.Write(" }\n")
6631 file.Write(code % {
6653 file.Write(" %s %s = c.%s;\n" % (self.type, self.name, self.name))
6675 file.Write(code % {'type': self.type, 'name': self.name})
6695 file.Write(" %s %s = c.%s;\n" % (self.type, self.name, self.name))
7019 file.Write("//! Command that corresponds to gl%s.\n" % self.original_name)
7050 file.Write(" static const uint8 cmd_flags = %s;\n" % cmd_flags)
7055 file.Write(" static const cmd::ArgFlags kArgFlags = cmd::kFixed;\n")
7059 file.Write(" static uint32_t ComputeSize() {\n")
7060 file.Write(
7062 file.Write(" }\n")
7063 file.Write("\n")
7067 file.Write(" void SetHeader() {\n")
7068 file.Write(" header.SetCmd<ValueType>();\n")
7069 file.Write(" }\n")
7070 file.Write("\n")
7074 file.Write(" void Init(%s) {\n" % self.MakeTypedCmdArgString("_"))
7075 file.Write(" SetHeader();\n")
7078 file.Write(" %s = _%s;\n" % (arg.name, arg.name))
7079 file.Write(" }\n")
7080 file.Write("\n")
7085 file.Write(" void* Set(void* cmd%s) {\n" %
7087 file.Write(" static_cast<ValueType*>(cmd)->Init(%s);\n" % copy_args)
7088 file.Write(" return NextCmdAddress<ValueType>(cmd);\n")
7089 file.Write(" }\n")
7090 file.Write("\n")
7226 file.Write("//! Immediate version of command that corresponds to gl%s.\n" %
7247 file.Write(" static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN;\n")
7306 file.Write("//! Bucket version of command that corresponds to gl%s.\n" %
7407 file.Write(_LICENSE)
7411 file.Write("namespace gpu {\n")
7412 file.Write("namespace gles2 {\n")
7413 file.Write("\n")
7417 file.Write("} // namespace gles2\n")
7418 file.Write("} // namespace gpu\n")
7419 file.Write("\n")
7479 file.Write("#define GLES2_COMMAND_LIST(OP) \\\n")
7482 file.Write(" %-60s /* %d */ \\\n" %
7485 file.Write("\n")
7487 file.Write("enum CommandId {\n")
7488 file.Write(" kStartPoint = cmd::kLastCommonId, "
7490 file.Write("#define GLES2_CMD_OP(name) k ## name,\n")
7491 file.Write(" GLES2_COMMAND_LIST(GLES2_CMD_OP)\n")
7492 file.Write("#undef GLES2_CMD_OP\n")
7493 file.Write(" kNumCommands\n")
7494 file.Write("};\n")
7495 file.Write("\n")
7506 file.Write("\n")
7517 file.Write("\n")
7553 file.Write("struct EnableFlags {\n")
7554 file.Write(" EnableFlags();\n")
7556 file.Write(" bool %s;\n" % capability['name'])
7557 file.Write(" bool cached_%s;\n" % capability['name'])
7558 file.Write("};\n\n")
7564 file.Write("%s %s[%d];\n" % (item['type'], item['name'],
7567 file.Write("%s %s;\n" % (item['type'], item['name']))
7571 file.Write("%s cached_%s[%d];\n" % (item['type'], item['name'],
7574 file.Write("%s cached_%s;\n" % (item['type'], item['name']))
7576 file.Write("\n")
7578 file.Write("""
7583 file.Write("""\
7586 file.Write("""\
7594 file.Write("""\
7613 file.Write("struct EnableFlags {\n")
7614 file.Write(" EnableFlags();\n")
7616 file.Write(" bool %s;\n" % capability['name'])
7617 file.Write("};\n\n")
7624 file.Write("""
7632 file.Write(" case %s:\n" % state['enum'])
7633 file.Write(" *num_written = %d;\n" % len(state['states']))
7634 file.Write(" if (params) {\n")
7636 file.Write(" params[%d] = static_cast<%s>(%s);\n" %
7638 file.Write(" }\n")
7639 file.Write(" return true;\n")
7642 file.Write(" case %s:\n" % item['enum'])
7645 file.Write(" *num_written = %d;\n" % item_len)
7646 file.Write(" if (params) {\n")
7648 file.Write(" memcpy(params, %s, sizeof(%s) * %d);\n" %
7651 file.Write(" for (size_t i = 0; i < %s; ++i) {\n" %
7653 file.Write(" params[i] = %s;\n" %
7656 file.Write(" }\n");
7658 file.Write(" *num_written = 1;\n")
7659 file.Write(" if (params) {\n")
7660 file.Write(" params[0] = %s;\n" %
7663 file.Write(" }\n")
7664 file.Write(" return true;\n")
7666 file.Write(" case GL_%s:\n" % capability['name'].upper())
7667 file.Write(" *num_written = 1;\n")
7668 file.Write(" if (params) {\n")
7669 file.Write(
7672 file.Write(" }\n")
7673 file.Write(" return true;\n")
7674 file.Write(""" default:
7693 file.Write("ContextState::EnableFlags::EnableFlags()\n : %s {\n}\n" %
7695 file.Write("\n")
7697 file.Write("void ContextState::Initialize() {\n")
7703 file.Write(" %s[%d] = %s;\n" % (item['name'], ndx, value))
7705 file.Write(" %s = %s;\n" % (item['name'], item['default']))
7709 file.Write(" cached_%s[%d] = %s;\n" % (item['name'], ndx, value))
7711 file.Write(" cached_%s = %s;\n" % (item['name'], item['default']))
7712 file.Write("}\n")
7714 file.Write("""
7721 file.Write(""" if (prev_state->enable_flags.cached_%s !=
7724 file.Write(" EnableDisable(GL_%s, enable_flags.cached_%s);\n" %
7727 file.Write(" if (prev_state) {")
7729 file.Write(" } else {")
7731 file.Write(" }")
7733 file.Write("""}
7746 file.Write(" if (")
7753 file.Write(' ||\n')
7754 file.Write("(%s != prev_state->%s)" % (item_name, item_name))
7756 file.Write(")\n")
7757 file.Write(
7765 file.Write(" if (feature_info_->feature_flags().%s) {\n " %
7769 file.Write(" if (memcmp(prev_state->%s, %s, "
7774 file.Write(" if (prev_state->%s != %s) {\n " %
7776 file.Write(" gl%s(%s, %s);\n" %
7783 file.Write(" ")
7784 file.Write(" }")
7786 file.Write(" }")
7789 file.Write(" if (feature_info_->feature_flags().%s)\n " %
7792 file.Write(" if (")
7799 file.Write(' ||\n')
7800 file.Write("(%s != prev_state->%s)" %
7803 file.Write(" )\n")
7804 file.Write(" gl%s(%s);\n" % (state['func'], ", ".join(args)))
7806 file.Write(" if (prev_state) {")
7808 file.Write(" } else {")
7810 file.Write(" }")
7811 file.Write("}\n")
7813 file.Write("""bool ContextState::GetEnabled(GLenum cap) const {
7817 file.Write(" case GL_%s:\n" % capability['name'].upper())
7818 file.Write(" return enable_flags.%s;\n" % capability['name'])
7819 file.Write(""" default:
7839 file.Write(
7842 file.Write("\n")
7844 file.Write("""
7851 file.Write(" case GL_%s:\n" % capability['name'].upper())
7852 file.Write(""" if (enable_flags.%(name)s != enabled) {
7858 file.Write(""" default:
7863 file.Write("""bool ClientContextState::GetEnabled(
7868 file.Write(" case GL_%s:\n" % capability['name'].upper())
7869 file.Write(" *enabled = enable_flags.%s;\n" % capability['name'])
7870 file.Write(" return true;\n")
7871 file.Write(""" default:
7890 file.Write("""
7895 file.Write(" case GL_%s:\n" % capability['name'].upper())
7898 file.Write("""\
7907 file.Write("""\
7916 file.Write(""" default:
7952 file.Write("// TODO(gman): %s\n" % func.name)
7962 file.Write(
7966 file.Write(" ExpectEnableDisable(GL_%s, %s);\n" %
7969 file.Write("""}
7986 file.Write(
7989 file.Write(" .Times(1)\n")
7990 file.Write(" .RetiresOnSaturation();\n")
7994 file.Write(" if (group_->feature_info()->feature_flags().%s) {\n" %
7996 file.Write(" ")
8002 file.Write(
8008 file.Write(" .Times(1)\n")
8009 file.Write(" .RetiresOnSaturation();\n")
8011 file.Write(" }\n")
8014 file.Write(" if (group_->feature_info()->feature_flags().%s) {\n" %
8016 file.Write(" ")
8025 file.Write(" EXPECT_CALL(*gl_, %s(%s))\n" %
8027 file.Write(" .Times(1)\n")
8028 file.Write(" .RetiresOnSaturation();\n")
8030 file.Write(" }\n")
8031 file.Write("""}
8048 file.Write("// TODO(gman): %s\n" % func.name)
8067 file.Write("\n")
8079 file.Write("""
8085 file.Write(
8088 file.Write(""" { NULL, NULL, },
8178 file.Write("ValueValidator<%s> %s;\n" %
8180 file.Write("\n")
8192 file.Write("static const %s valid_%s_table[] = {\n" %
8195 file.Write(" %s,\n" % value)
8196 file.Write("};\n")
8197 file.Write("\n")
8198 file.Write("Validators::Validators()")
8209 file.Write(code % {
8214 file.Write(" {\n");
8215 file.Write("}\n\n");
8224 file.Write("static std::string GetString%s(uint32_t value);\n" %
8226 file.Write("\n")
8247 file.Write("static const GLES2Util::EnumToString "
8250 file.Write(' { %s, "%s", },\n' % (value, dict[value]))
8251 file.Write("""};
8263 file.Write("std::string GLES2Util::GetString%s(uint32_t value) {\n" %
8266 file.Write(" static const EnumToString string_table[] = {\n")
8268 file.Write(' { %s, "%s" },\n' % (value, value))
8269 file.Write(""" };
8276 file.Write(""" return GLES2Util::GetQualifiedEnumString(
8286 file.Write(_LICENSE)
8287 file.Write(_DO_NOT_EDIT_WARNING)
8289 file.Write("label Chrome {\n")
8290 file.Write(" M39 = 1.0\n")
8291 file.Write("};\n\n")
8295 file.Write("[version=1.0]\n")
8296 file.Write("describe {\n")
8301 file.Write(" %s;\n" % gltype)
8302 file.Write(" %s_ptr_t;\n" % gltype)
8303 file.Write("};\n\n")
8306 file.Write("#inline c\n")
8307 file.Write("#include \"ppapi/c/pp_resource.h\"\n")
8309 file.Write("#include \"ppapi/c/ppb_opengles2.h\"\n\n")
8311 file.Write("\n#ifndef __gl2_h_\n")
8313 file.Write("typedef %s %s;\n" % (v, k))
8314 file.Write("#ifdef _WIN64\n")
8316 file.Write("typedef %s %s;\n" % (v, k))
8317 file.Write("#else\n")
8319 file.Write("typedef %s %s;\n" % (v, k))
8320 file.Write("#endif // _WIN64\n")
8321 file.Write("#endif // __gl2_h_\n\n")
8322 file.Write("#endinl\n")
8330 file.Write('\n[macro="%s", force_struct_namespace]\n' %
8332 file.Write("interface %s {\n" % interface.GetStructName())
8340 file.Write(func_prefix)
8341 file.Write("[in] PP_Resource context")
8343 file.Write(",\n" + " " * len(func_prefix) + arg)
8344 file.Write(");\n")
8345 file.Write("};\n\n")
8354 file.Write(_LICENSE)
8355 file.Write(_DO_NOT_EDIT_WARNING)
8357 file.Write("#include \"ppapi/shared_impl/ppb_opengles2_shared.h\"\n\n")
8358 file.Write("#include \"base/logging.h\"\n")
8359 file.Write("#include \"gpu/command_buffer/client/gles2_implementation.h\"\n")
8360 file.Write("#include \"ppapi/shared_impl/ppb_graphics_3d_shared.h\"\n")
8361 file.Write("#include \"ppapi/thunk/enter.h\"\n\n")
8363 file.Write("namespace ppapi {\n\n")
8364 file.Write("namespace {\n\n")
8366 file.Write("typedef thunk::EnterResource<thunk::PPB_Graphics3D_API>"
8369 file.Write("gpu::gles2::GLES2Implementation* ToGles2Impl(Enter3D*"
8371 file.Write(" DCHECK(enter);\n")
8372 file.Write(" DCHECK(enter->succeeded());\n")
8373 file.Write(" return static_cast<PPB_Graphics3D_Shared*>(enter->object())->"
8375 file.Write("}\n\n");
8387 file.Write("%s %s(%s) {\n" %
8389 file.Write(" Enter3D enter(context_id, true);\n")
8390 file.Write(" if (enter.succeeded()) {\n")
8393 file.Write(" %sToGles2Impl(&enter)->%s(%s);\n" %
8396 file.Write(" }")
8398 file.Write("\n")
8400 file.Write(" else {\n")
8401 file.Write(" return %s;\n" % func.GetErrorReturnString())
8402 file.Write(" }\n")
8403 file.Write("}\n\n")
8405 file.Write("} // namespace\n")
8408 file.Write("const %s* PPB_OpenGLES2_Shared::Get%sInterface() {\n" %
8410 file.Write(" static const struct %s "
8412 file.Write(" &")
8413 file.Write(",\n &".join(
8416 file.Write("\n")
8418 file.Write(" };\n")
8419 file.Write(" return &ppb_opengles2;\n")
8420 file.Write("}\n")
8422 file.Write("} // namespace ppapi\n")
8429 file.Write(_LICENSE)
8430 file.Write(_DO_NOT_EDIT_WARNING)
8432 file.Write("#ifndef GL_GLEXT_PROTOTYPES\n")
8433 file.Write("#define GL_GLEXT_PROTOTYPES\n")
8434 file.Write("#endif\n")
8435 file.Write("#include <GLES2/gl2.h>\n")
8436 file.Write("#include <GLES2/gl2ext.h>\n")
8437 file.Write("#include \"ppapi/lib/gl/gles2/gl2ext_ppapi.h\"\n\n")
8445 file.Write("%s GL_APIENTRY gl%s(%s) {\n" %
8457 file.Write(" const struct %s* ext = %s;\n" %
8459 file.Write(" if (ext)\n")
8460 file.Write(" %sext->%s(%s);\n" %
8463 file.Write(" %s0;\n" % return_str)
8465 file.Write(" %s%s->%s(%s);\n" %
8467 file.Write("}\n\n")
8473 file.Write(_LICENSE)
8474 file.Write(_DO_NOT_EDIT_WARNING)
8479 file.Write("VISIT_GL_CALL(%s, %s, (%s), (%s))\n" %
8489 file.Write(_LICENSE)
8490 file.Write(_DO_NOT_EDIT_WARNING)
8495 file.Write("VISIT_GL_CALL(%s, %s, (%s), (%s))\n" %