MCPcopy Create free account
hub / github.com/google/gapid / postFBData

Function postFBData

gapis/api/gles/read_framebuffer.go:83–404  ·  view source on GitHub ↗
(ctx context.Context,
	id api.CmdID,
	thread uint64,
	width, height uint32,
	fb FramebufferId,
	attachment GLenum,
	version *Version,
	out transform.Writer,
	res replay.Result)

Source from the content-addressed store, hash-verified

81}
82
83func postFBData(ctx context.Context,
84 id api.CmdID,
85 thread uint64,
86 width, height uint32,
87 fb FramebufferId,
88 attachment GLenum,
89 version *Version,
90 out transform.Writer,
91 res replay.Result) {
92
93 s := out.State()
94 c := GetContext(s, thread)
95
96 if fb == 0 {
97 var err error
98 if fb, err = getBoundFramebufferID(thread, s); err != nil {
99 log.W(ctx, "Could not read framebuffer after cmd %v: %v", id, err)
100 res(nil, &service.ErrDataUnavailable{Reason: messages.ErrFramebufferUnavailable()})
101 return
102 }
103 }
104
105 fbai, err := GetState(s).getFramebufferAttachmentInfo(thread, fb, attachment)
106 if err != nil {
107 log.W(ctx, "Failed to read framebuffer after cmd %v: %v", id, err)
108 res(nil, &service.ErrDataUnavailable{Reason: messages.ErrFramebufferUnavailable()})
109 return
110 }
111 if fbai.sizedFormat == 0 {
112 log.W(ctx, "Failed to read framebuffer after cmd %v: no image format", id)
113 res(nil, &service.ErrDataUnavailable{Reason: messages.ErrFramebufferUnavailable()})
114 return
115 }
116
117 var (
118 inW = int32(fbai.width)
119 inH = int32(fbai.height)
120 outW = int32(width)
121 outH = int32(height)
122 )
123
124 if outW == 0 {
125 outW = inW
126 }
127 if outH == 0 {
128 outH = inH
129 }
130
131 dID := id.Derived()
132 cb := CommandBuilder{Thread: thread, Arena: s.Arena}
133 t := newTweaker(out, dID, cb)
134 defer t.revert(ctx)
135 t.glBindFramebuffer_Read(ctx, fb)
136
137 unsizedFormat, ty := getUnsizedFormatAndType(fbai.sizedFormat)
138
139 imgFmt, err := getImageFormat(unsizedFormat, ty)
140 if err != nil {

Callers 3

addMethod · 0.85
depthMethod · 0.85
colorMethod · 0.85

Calls 15

ConvertMethod · 0.95
GetContextFunction · 0.85
getBoundFramebufferIDFunction · 0.85
newTweakerFunction · 0.85
getUnsizedFormatAndTypeFunction · 0.85
getImageFormatFunction · 0.85
mutateAndWriteEachFunction · 0.85
copyDepthToColorGLESFunction · 0.85
DerivedMethod · 0.80
revertMethod · 0.80

Tested by

no test coverage detected