0046-Separate-EXT_framebuffer_object-from-ARB-version.patch 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. From 01d9921f0768cf26cf37a402b2d9f92a6dbfe2c0 Mon Sep 17 00:00:00 2001
  2. From: Brendan King <Brendan.King@imgtec.com>
  3. Date: Mon, 10 Mar 2014 13:43:45 +0000
  4. Subject: [PATCH] Separate EXT_framebuffer_object from ARB version
  5. This patch separates the EXT_framebuffer_object entry points from the ARB
  6. equivalents.
  7. Probably not all this separation is necessary; it looks like only
  8. BindRenderbuffer
  9. BindFramebuffer
  10. GetFramebufferAttachmentParameteriv
  11. take advantage of the split.
  12. Next time this patch is implemented, see if it can be trimmed down to
  13. just the above functions, as it may be more upstreamable.
  14. We may need to implement the EXT restrictions if we want to upstream.
  15. ---
  16. src/mapi/glapi/gen/EXT_framebuffer_object.xml | 30 +++----
  17. src/mapi/glapi/gen/static_data.py | 15 ++++
  18. src/mesa/main/fbobject.c | 83 +++++++++++++++++++
  19. src/mesa/main/fbobject.h | 54 ++++++++++++
  20. src/mesa/main/genmipmap.c | 6 ++
  21. src/mesa/main/genmipmap.h | 3 +
  22. 6 files changed, 176 insertions(+), 15 deletions(-)
  23. diff --git a/src/mapi/glapi/gen/EXT_framebuffer_object.xml b/src/mapi/glapi/gen/EXT_framebuffer_object.xml
  24. index 6c0e54a..957b6a3 100644
  25. --- a/src/mapi/glapi/gen/EXT_framebuffer_object.xml
  26. +++ b/src/mapi/glapi/gen/EXT_framebuffer_object.xml
  27. @@ -70,7 +70,7 @@
  28. </enum>
  29. <enum name="INVALID_FRAMEBUFFER_OPERATION_EXT" value="0x0506"/>
  30. - <function name="IsRenderbufferEXT" alias="IsRenderbuffer">
  31. + <function name="IsRenderbufferEXT">
  32. <param name="renderbuffer" type="GLuint"/>
  33. <return type="GLboolean"/>
  34. </function>
  35. @@ -81,30 +81,30 @@
  36. <glx rop="4316"/>
  37. </function>
  38. - <function name="DeleteRenderbuffersEXT" alias="DeleteRenderbuffers">
  39. + <function name="DeleteRenderbuffersEXT">
  40. <param name="n" type="GLsizei"/>
  41. <param name="renderbuffers" type="const GLuint *"/>
  42. </function>
  43. - <function name="GenRenderbuffersEXT" alias="GenRenderbuffers">
  44. + <function name="GenRenderbuffersEXT">
  45. <param name="n" type="GLsizei"/>
  46. <param name="renderbuffers" type="GLuint *"/>
  47. </function>
  48. - <function name="RenderbufferStorageEXT" alias="RenderbufferStorage">
  49. + <function name="RenderbufferStorageEXT">
  50. <param name="target" type="GLenum"/>
  51. <param name="internalformat" type="GLenum"/>
  52. <param name="width" type="GLsizei"/>
  53. <param name="height" type="GLsizei"/>
  54. </function>
  55. - <function name="GetRenderbufferParameterivEXT" alias="GetRenderbufferParameteriv">
  56. + <function name="GetRenderbufferParameterivEXT">
  57. <param name="target" type="GLenum"/>
  58. <param name="pname" type="GLenum"/>
  59. <param name="params" type="GLint *"/>
  60. </function>
  61. - <function name="IsFramebufferEXT" alias="IsFramebuffer">
  62. + <function name="IsFramebufferEXT">
  63. <param name="framebuffer" type="GLuint"/>
  64. <return type="GLboolean"/>
  65. </function>
  66. @@ -115,22 +115,22 @@
  67. <glx rop="4319"/>
  68. </function>
  69. - <function name="DeleteFramebuffersEXT" alias="DeleteFramebuffers">
  70. + <function name="DeleteFramebuffersEXT">
  71. <param name="n" type="GLsizei"/>
  72. <param name="framebuffers" type="const GLuint *"/>
  73. </function>
  74. - <function name="GenFramebuffersEXT" alias="GenFramebuffers">
  75. + <function name="GenFramebuffersEXT">
  76. <param name="n" type="GLsizei"/>
  77. <param name="framebuffers" type="GLuint *"/>
  78. </function>
  79. - <function name="CheckFramebufferStatusEXT" alias="CheckFramebufferStatus">
  80. + <function name="CheckFramebufferStatusEXT">
  81. <param name="target" type="GLenum"/>
  82. <return type="GLenum"/>
  83. </function>
  84. - <function name="FramebufferTexture1DEXT" alias="FramebufferTexture1D">
  85. + <function name="FramebufferTexture1DEXT">
  86. <param name="target" type="GLenum"/>
  87. <param name="attachment" type="GLenum"/>
  88. <param name="textarget" type="GLenum"/>
  89. @@ -138,7 +138,7 @@
  90. <param name="level" type="GLint"/>
  91. </function>
  92. - <function name="FramebufferTexture2DEXT" alias="FramebufferTexture2D">
  93. + <function name="FramebufferTexture2DEXT">
  94. <param name="target" type="GLenum"/>
  95. <param name="attachment" type="GLenum"/>
  96. <param name="textarget" type="GLenum"/>
  97. @@ -146,7 +146,7 @@
  98. <param name="level" type="GLint"/>
  99. </function>
  100. - <function name="FramebufferTexture3DEXT" alias="FramebufferTexture3D">
  101. + <function name="FramebufferTexture3DEXT">
  102. <param name="target" type="GLenum"/>
  103. <param name="attachment" type="GLenum"/>
  104. <param name="textarget" type="GLenum"/>
  105. @@ -155,21 +155,21 @@
  106. <param name="zoffset" type="GLint"/>
  107. </function>
  108. - <function name="FramebufferRenderbufferEXT" alias="FramebufferRenderbuffer">
  109. + <function name="FramebufferRenderbufferEXT">
  110. <param name="target" type="GLenum"/>
  111. <param name="attachment" type="GLenum"/>
  112. <param name="renderbuffertarget" type="GLenum"/>
  113. <param name="renderbuffer" type="GLuint"/>
  114. </function>
  115. - <function name="GetFramebufferAttachmentParameterivEXT" alias="GetFramebufferAttachmentParameteriv">
  116. + <function name="GetFramebufferAttachmentParameterivEXT">
  117. <param name="target" type="GLenum"/>
  118. <param name="attachment" type="GLenum"/>
  119. <param name="pname" type="GLenum"/>
  120. <param name="params" type="GLint *"/>
  121. </function>
  122. - <function name="GenerateMipmapEXT" alias="GenerateMipmap">
  123. + <function name="GenerateMipmapEXT">
  124. <param name="target" type="GLenum"/>
  125. </function>
  126. </category>
  127. diff --git a/src/mapi/glapi/gen/static_data.py b/src/mapi/glapi/gen/static_data.py
  128. index e231c17..974f366 100644
  129. --- a/src/mapi/glapi/gen/static_data.py
  130. +++ b/src/mapi/glapi/gen/static_data.py
  131. @@ -1706,6 +1706,21 @@ offsets = {
  132. "FramebufferTextureMultisampleMultiviewOVR" : 1670,
  133. "MultiDrawArraysIndirectEXT" : 1671,
  134. "MultiDrawElementsIndirectEXT" : 1672,
  135. + "IsRenderbufferEXT" : 1673,
  136. + "DeleteRenderbuffersEXT" : 1674,
  137. + "GenRenderbuffersEXT" : 1675,
  138. + "RenderbufferStorageEXT" : 1676,
  139. + "GetRenderbufferParameterivEXT" : 1677,
  140. + "IsFramebufferEXT" : 1678,
  141. + "DeleteFramebuffersEXT" : 1679,
  142. + "GenFramebuffersEXT" : 1680,
  143. + "CheckFramebufferStatusEXT" : 1681,
  144. + "FramebufferTexture1DEXT" : 1682,
  145. + "FramebufferTexture2DEXT" : 1683,
  146. + "FramebufferTexture3DEXT" : 1684,
  147. + "FramebufferRenderbufferEXT" : 1685,
  148. + "GetFramebufferAttachmentParameterivEXT" : 1686,
  149. + "GenerateMipmapEXT" : 1687,
  150. }
  151. functions = [
  152. diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
  153. index 4989316..885aa44 100644
  154. --- a/src/mesa/main/fbobject.c
  155. +++ b/src/mesa/main/fbobject.c
  156. @@ -1995,6 +1995,11 @@ _mesa_detach_renderbuffer(struct gl_context *ctx,
  157. return progress;
  158. }
  159. +GLboolean GLAPIENTRY
  160. +_mesa_IsRenderbufferEXT(GLuint renderbuffer)
  161. +{
  162. + return _mesa_IsRenderbuffer(renderbuffer);
  163. +}
  164. void GLAPIENTRY
  165. _mesa_DeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers)
  166. @@ -2722,6 +2727,12 @@ renderbuffer_storage_target(GLenum target, GLenum internalFormat,
  167. }
  168. +void GLAPIENTRY
  169. +_mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers)
  170. +{
  171. + _mesa_DeleteRenderbuffers(n, renderbuffers);
  172. +}
  173. +
  174. void GLAPIENTRY
  175. _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
  176. {
  177. @@ -2752,6 +2763,11 @@ _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
  178. ctx->Driver.EGLImageTargetRenderbufferStorage(ctx, rb, image);
  179. }
  180. +void GLAPIENTRY
  181. +_mesa_GenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers)
  182. +{
  183. + _mesa_GenRenderbuffers(n, renderbuffers);
  184. +}
  185. /**
  186. * Helper function for _mesa_GetRenderbufferParameteriv() and
  187. @@ -2784,6 +2800,12 @@ _mesa_RenderbufferStorage(GLenum target, GLenum internalFormat,
  188. NO_SAMPLES, 0, "glRenderbufferStorage");
  189. }
  190. +void GLAPIENTRY
  191. +_mesa_RenderbufferStorageEXT(GLenum target, GLenum internalFormat,
  192. + GLsizei width, GLsizei height)
  193. +{
  194. + _mesa_RenderbufferStorage(target, internalFormat, width, height);
  195. +}
  196. void GLAPIENTRY
  197. _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples,
  198. @@ -2985,6 +3007,11 @@ _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,
  199. "glGetNamedRenderbufferParameteriv");
  200. }
  201. +void GLAPIENTRY
  202. +_mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params)
  203. +{
  204. + _mesa_GetRenderbufferParameteriv(target, pname, params);
  205. +}
  206. void GLAPIENTRY
  207. _mesa_GetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname,
  208. @@ -3018,6 +3045,11 @@ _mesa_IsFramebuffer(GLuint framebuffer)
  209. return GL_FALSE;
  210. }
  211. +GLboolean GLAPIENTRY
  212. +_mesa_IsFramebufferEXT(GLuint framebuffer)
  213. +{
  214. + return _mesa_IsFramebuffer(framebuffer);
  215. +}
  216. /**
  217. * Check if any of the attachments of the given framebuffer are textures
  218. @@ -3253,6 +3285,11 @@ _mesa_DeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
  219. }
  220. }
  221. +void GLAPIENTRY
  222. +_mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers)
  223. +{
  224. + _mesa_DeleteFramebuffers(n, framebuffers);
  225. +}
  226. /**
  227. * This is the implementation for glGenFramebuffers and glCreateFramebuffers.
  228. @@ -3299,6 +3336,11 @@ create_framebuffers(GLsizei n, GLuint *framebuffers, bool dsa)
  229. _mesa_HashUnlockMutex(ctx->Shared->FrameBuffers);
  230. }
  231. +void GLAPIENTRY
  232. +_mesa_GenFramebuffersEXT(GLsizei n, GLuint *framebuffers)
  233. +{
  234. + _mesa_GenFramebuffers(n, framebuffers);
  235. +}
  236. void GLAPIENTRY
  237. _mesa_GenFramebuffers(GLsizei n, GLuint *framebuffers)
  238. @@ -3338,6 +3380,11 @@ _mesa_check_framebuffer_status(struct gl_context *ctx,
  239. return buffer->_Status;
  240. }
  241. +GLenum GLAPIENTRY
  242. +_mesa_CheckFramebufferStatusEXT(GLenum target)
  243. +{
  244. + return _mesa_CheckFramebufferStatus(target);
  245. +}
  246. GLenum GLAPIENTRY
  247. _mesa_CheckFramebufferStatus_no_error(GLenum target)
  248. @@ -3950,6 +3997,12 @@ _mesa_FramebufferTexture1D_no_error(GLenum target, GLenum attachment,
  249. texture, level, 0);
  250. }
  251. +void GLAPIENTRY
  252. +_mesa_FramebufferTexture1DEXT(GLenum target, GLenum attachment,
  253. + GLenum textarget, GLuint texture, GLint level)
  254. +{
  255. + _mesa_FramebufferTexture1D(target, attachment, textarget, texture, level);
  256. +}
  257. void GLAPIENTRY
  258. _mesa_FramebufferTexture1D(GLenum target, GLenum attachment,
  259. @@ -3990,6 +4043,12 @@ _mesa_FramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment,
  260. false);
  261. }
  262. +void GLAPIENTRY
  263. +_mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment,
  264. + GLenum textarget, GLuint texture, GLint level)
  265. +{
  266. + _mesa_FramebufferTexture2D(target, attachment, textarget, texture, level);
  267. +}
  268. void GLAPIENTRY
  269. _mesa_FramebufferTexture3D_no_error(GLenum target, GLenum attachment,
  270. @@ -4100,6 +4159,15 @@ frame_buffer_texture(GLuint framebuffer, GLenum target,
  271. level, 0, layer, layered);
  272. }
  273. +void GLAPIENTRY
  274. +_mesa_FramebufferTexture3DEXT(GLenum target, GLenum attachment,
  275. + GLenum textarget, GLuint texture,
  276. + GLint level, GLint zoffset)
  277. +{
  278. + _mesa_FramebufferTexture3D(target, attachment, textarget, texture,
  279. + level, zoffset);
  280. +}
  281. +
  282. void GLAPIENTRY
  283. _mesa_FramebufferTextureLayer_no_error(GLenum target, GLenum attachment,
  284. GLuint texture, GLint level,
  285. @@ -4353,6 +4421,15 @@ _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment,
  286. renderbuffer, "glFramebufferRenderbuffer");
  287. }
  288. +void GLAPIENTRY
  289. +_mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment,
  290. + GLenum renderbufferTarget,
  291. + GLuint renderbuffer)
  292. +{
  293. + _mesa_FramebufferRenderbuffer(target, attachment, renderbufferTarget,
  294. + renderbuffer);
  295. +}
  296. +
  297. void GLAPIENTRY
  298. _mesa_NamedFramebufferRenderbuffer_no_error(GLuint framebuffer,
  299. GLenum attachment,
  300. @@ -4754,6 +4831,12 @@ invalid_pname_enum:
  301. return;
  302. }
  303. +void GLAPIENTRY
  304. +_mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment,
  305. + GLenum pname, GLint *params)
  306. +{
  307. + _mesa_GetFramebufferAttachmentParameteriv(target, attachment, pname, params);
  308. +}
  309. void GLAPIENTRY
  310. _mesa_GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment,
  311. diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h
  312. index 2a32c15..98271d7 100644
  313. --- a/src/mesa/main/fbobject.h
  314. +++ b/src/mesa/main/fbobject.h
  315. @@ -145,6 +145,9 @@ _mesa_bind_framebuffers(struct gl_context *ctx,
  316. extern GLboolean GLAPIENTRY
  317. _mesa_IsRenderbuffer(GLuint renderbuffer);
  318. +extern GLboolean GLAPIENTRY
  319. +_mesa_IsRenderbufferEXT(GLuint renderbuffer);
  320. +
  321. extern void GLAPIENTRY
  322. _mesa_BindRenderbuffer(GLenum target, GLuint renderbuffer);
  323. @@ -157,12 +160,18 @@ _mesa_DeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
  324. void GLAPIENTRY
  325. _mesa_GenRenderbuffers_no_error(GLsizei n, GLuint *renderbuffers);
  326. +extern void GLAPIENTRY
  327. +_mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers);
  328. +
  329. extern void GLAPIENTRY
  330. _mesa_GenRenderbuffers(GLsizei n, GLuint *renderbuffers);
  331. void GLAPIENTRY
  332. _mesa_CreateRenderbuffers_no_error(GLsizei n, GLuint *renderbuffers);
  333. +extern void GLAPIENTRY
  334. +_mesa_GenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers);
  335. +
  336. extern void GLAPIENTRY
  337. _mesa_CreateRenderbuffers(GLsizei n, GLuint *renderbuffers);
  338. @@ -170,6 +179,10 @@ extern void GLAPIENTRY
  339. _mesa_RenderbufferStorage(GLenum target, GLenum internalformat,
  340. GLsizei width, GLsizei height);
  341. +extern void GLAPIENTRY
  342. +_mesa_RenderbufferStorageEXT(GLenum target, GLenum internalformat,
  343. + GLsizei width, GLsizei height);
  344. +
  345. extern void GLAPIENTRY
  346. _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples,
  347. GLenum internalformat,
  348. @@ -213,6 +226,10 @@ extern void GLAPIENTRY
  349. _mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname,
  350. GLint *params);
  351. +extern void GLAPIENTRY
  352. +_mesa_GetRenderbufferParameterivEXT(GLenum target, GLenum pname,
  353. + GLint *params);
  354. +
  355. void GLAPIENTRY
  356. _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,
  357. GLint *params);
  358. @@ -220,6 +237,9 @@ _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,
  359. extern GLboolean GLAPIENTRY
  360. _mesa_IsFramebuffer(GLuint framebuffer);
  361. +extern GLboolean GLAPIENTRY
  362. +_mesa_IsFramebufferEXT(GLuint framebuffer);
  363. +
  364. extern void GLAPIENTRY
  365. _mesa_BindFramebuffer(GLenum target, GLuint framebuffer);
  366. @@ -229,9 +249,15 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer);
  367. extern void GLAPIENTRY
  368. _mesa_DeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
  369. +extern void GLAPIENTRY
  370. +_mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers);
  371. +
  372. extern void GLAPIENTRY
  373. _mesa_GenFramebuffers(GLsizei n, GLuint *framebuffers);
  374. +extern void GLAPIENTRY
  375. +_mesa_GenFramebuffersEXT(GLsizei n, GLuint *framebuffers);
  376. +
  377. extern void GLAPIENTRY
  378. _mesa_CreateFramebuffers(GLsizei n, GLuint *framebuffers);
  379. @@ -241,6 +267,9 @@ _mesa_CheckFramebufferStatus_no_error(GLenum target);
  380. extern GLenum GLAPIENTRY
  381. _mesa_CheckFramebufferStatus(GLenum target);
  382. +extern GLenum GLAPIENTRY
  383. +_mesa_CheckFramebufferStatusEXT(GLenum target);
  384. +
  385. extern GLenum GLAPIENTRY
  386. _mesa_CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target);
  387. @@ -259,6 +288,11 @@ extern void GLAPIENTRY
  388. _mesa_FramebufferTexture2D_no_error(GLenum target, GLenum attachment,
  389. GLenum textarget, GLuint texture,
  390. GLint level);
  391. +
  392. +extern void GLAPIENTRY
  393. +_mesa_FramebufferTexture1DEXT(GLenum target, GLenum attachment,
  394. + GLenum textarget, GLuint texture, GLint level);
  395. +
  396. extern void GLAPIENTRY
  397. _mesa_FramebufferTexture2D(GLenum target, GLenum attachment,
  398. GLenum textarget, GLuint texture, GLint level);
  399. @@ -272,6 +306,11 @@ extern void GLAPIENTRY
  400. _mesa_FramebufferTexture3D_no_error(GLenum target, GLenum attachment,
  401. GLenum textarget, GLuint texture,
  402. GLint level, GLint layer);
  403. +
  404. +extern void GLAPIENTRY
  405. +_mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment,
  406. + GLenum textarget, GLuint texture, GLint level);
  407. +
  408. extern void GLAPIENTRY
  409. _mesa_FramebufferTexture3D(GLenum target, GLenum attachment,
  410. GLenum textarget, GLuint texture,
  411. @@ -281,6 +320,12 @@ extern void GLAPIENTRY
  412. _mesa_FramebufferTextureLayer_no_error(GLenum target, GLenum attachment,
  413. GLuint texture, GLint level,
  414. GLint layer);
  415. +
  416. +extern void GLAPIENTRY
  417. +_mesa_FramebufferTexture3DEXT(GLenum target, GLenum attachment,
  418. + GLenum textarget, GLuint texture,
  419. + GLint level, GLint zoffset);
  420. +
  421. extern void GLAPIENTRY
  422. _mesa_FramebufferTextureLayer(GLenum target, GLenum attachment,
  423. GLuint texture, GLint level, GLint layer);
  424. @@ -342,6 +387,11 @@ _mesa_NamedFramebufferRenderbuffer_no_error(GLuint framebuffer,
  425. GLenum renderbuffertarget,
  426. GLuint renderbuffer);
  427. +extern void GLAPIENTRY
  428. +_mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment,
  429. + GLenum renderbuffertarget,
  430. + GLuint renderbuffer);
  431. +
  432. extern void GLAPIENTRY
  433. _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment,
  434. GLenum renderbuffertarget,
  435. @@ -390,6 +440,10 @@ _mesa_InvalidateSubFramebuffer_no_error(GLenum target, GLsizei numAttachments,
  436. const GLenum *attachments, GLint x,
  437. GLint y, GLsizei width, GLsizei height);
  438. +extern void GLAPIENTRY
  439. +_mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment,
  440. + GLenum pname, GLint *params);
  441. +
  442. extern void GLAPIENTRY
  443. _mesa_InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments,
  444. const GLenum *attachments, GLint x, GLint y,
  445. diff --git a/src/mesa/main/genmipmap.c b/src/mesa/main/genmipmap.c
  446. index 36727bb..8d262e5 100644
  447. --- a/src/mesa/main/genmipmap.c
  448. +++ b/src/mesa/main/genmipmap.c
  449. @@ -267,3 +267,9 @@ _mesa_GenerateMultiTexMipmapEXT(GLenum texunit, GLenum target)
  450. validate_params_and_generate_mipmap(texObj,
  451. "glGenerateMultiTexMipmapEXT");
  452. }
  453. +
  454. +void GLAPIENTRY
  455. +_mesa_GenerateMipmapEXT(GLenum target)
  456. +{
  457. + _mesa_GenerateMipmap(target);
  458. +}
  459. diff --git a/src/mesa/main/genmipmap.h b/src/mesa/main/genmipmap.h
  460. index c661f21..ff3b45a 100644
  461. --- a/src/mesa/main/genmipmap.h
  462. +++ b/src/mesa/main/genmipmap.h
  463. @@ -44,6 +44,9 @@ _mesa_GenerateMipmap(GLenum target);
  464. void GLAPIENTRY
  465. _mesa_GenerateTextureMipmap_no_error(GLuint texture);
  466. +extern void GLAPIENTRY
  467. +_mesa_GenerateMipmapEXT(GLenum target);
  468. +
  469. extern void GLAPIENTRY
  470. _mesa_GenerateTextureMipmap(GLuint texture);