[Piglit] [PATCH 1/4] piglit-fbo: Move color buffer initialization code in to separate functions
Anuj Phogat
anuj.phogat at gmail.com
Thu Aug 7 13:11:57 PDT 2014
Anyone like to review this really old series?
See the patches pending review at:
http://patchwork.freedesktop.org/project/piglit/list/?submitter=10862
Thanks
Anuj
On Fri, May 9, 2014 at 12:42 PM, Anuj Phogat <anuj.phogat at gmail.com> wrote:
> This refactoring will make it easier to add the code for initializing
> multiple renderbuffers / textures in following patches.
>
> No functional changes in this patch.
>
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> ---
> tests/util/piglit-fbo.cpp | 100
> +++++++++++++++++++++++++++-------------------
> tests/util/piglit-fbo.h | 3 ++
> 2 files changed, 62 insertions(+), 41 deletions(-)
>
> diff --git a/tests/util/piglit-fbo.cpp b/tests/util/piglit-fbo.cpp
> index a85d19d..906fa55 100644
> --- a/tests/util/piglit-fbo.cpp
> +++ b/tests/util/piglit-fbo.cpp
> @@ -67,6 +67,62 @@ Fbo::generate_gl_objects(void)
> }
>
> void
> +Fbo::attach_color_renderbuffer(const FboConfig &config)
> +{
> + glBindRenderbuffer(GL_RENDERBUFFER, color_rb);
> + glRenderbufferStorageMultisample(GL_RENDERBUFFER,
> + config.num_samples,
> + config.color_internalformat,
> + config.width,
> + config.height);
> + glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER,
> + GL_COLOR_ATTACHMENT0,
> + GL_RENDERBUFFER, color_rb);
> +}
> +
> +void
> +Fbo::attach_color_texture(const FboConfig &config)
> +{
> + glBindTexture(GL_TEXTURE_RECTANGLE, color_tex);
> + glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_MIN_FILTER,
> + GL_NEAREST);
> + glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_MAG_FILTER,
> + GL_NEAREST);
> + glTexImage2D(GL_TEXTURE_RECTANGLE,
> + 0 /* level */,
> + config.color_internalformat,
> + config.width,
> + config.height,
> + 0 /* border */,
> + config.color_format /* format */,
> + GL_BYTE /* type */,
> + NULL /* data */);
> + glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER,
> + GL_COLOR_ATTACHMENT0,
> + GL_TEXTURE_RECTANGLE,
> + color_tex,
> + 0 /* level */);
> +}
> +
> +void
> +Fbo::attach_multisample_color_texture(const FboConfig &config)
> +{
> + glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, color_tex);
> + glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,
> + config.num_samples,
> + config.color_internalformat,
> + config.width,
> + config.height,
> + GL_TRUE /* fixed sample locations */);
> +
> + glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER,
> + GL_COLOR_ATTACHMENT0,
> + GL_TEXTURE_2D_MULTISAMPLE,
> + color_tex,
> + 0 /* level */);
> +}
> +
> +void
> Fbo::set_samples(int num_samples)
> {
> FboConfig new_config = this->config;
> @@ -106,51 +162,13 @@ Fbo::try_setup(const FboConfig &new_config)
> /* Color buffer */
> if (config.color_internalformat != GL_NONE) {
> if (!config.attach_texture) {
> - glBindRenderbuffer(GL_RENDERBUFFER, color_rb);
> - glRenderbufferStorageMultisample(GL_RENDERBUFFER,
> -
> config.num_samples,
> -
> config.color_internalformat,
> - config.width,
> - config.height);
> - glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER,
> - GL_COLOR_ATTACHMENT0,
> - GL_RENDERBUFFER,
> color_rb);
> + attach_color_renderbuffer(new_config);
> } else if (config.num_samples == 0) {
> + attach_color_texture(new_config);
>
> piglit_require_extension("GL_ARB_texture_rectangle");
> - glBindTexture(GL_TEXTURE_RECTANGLE, color_tex);
> - glTexParameteri(GL_TEXTURE_RECTANGLE,
> GL_TEXTURE_MIN_FILTER,
> - GL_NEAREST);
> - glTexParameteri(GL_TEXTURE_RECTANGLE,
> GL_TEXTURE_MAG_FILTER,
> - GL_NEAREST);
> - glTexImage2D(GL_TEXTURE_RECTANGLE,
> - 0 /* level */,
> - config.color_internalformat,
> - config.width,
> - config.height,
> - 0 /* border */,
> - config.color_format /* format */,
> - GL_BYTE /* type */,
> - NULL /* data */);
> - glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER,
> - GL_COLOR_ATTACHMENT0,
> - GL_TEXTURE_RECTANGLE,
> - color_tex,
> - 0 /* level */);
> } else {
>
> piglit_require_extension("GL_ARB_texture_multisample");
> - glBindTexture(GL_TEXTURE_2D_MULTISAMPLE,
> color_tex);
> - glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,
> - config.num_samples,
> -
> config.color_internalformat,
> - config.width,
> - config.height,
> - GL_TRUE /* fixed sample
> locations */);
> -
> - glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER,
> - GL_COLOR_ATTACHMENT0,
> - GL_TEXTURE_2D_MULTISAMPLE,
> - color_tex,
> - 0 /* level */);
> + attach_multisample_color_texture(new_config);
> }
> }
>
> diff --git a/tests/util/piglit-fbo.h b/tests/util/piglit-fbo.h
> index 17acf4e..e225149 100644
> --- a/tests/util/piglit-fbo.h
> +++ b/tests/util/piglit-fbo.h
> @@ -139,6 +139,9 @@ namespace piglit_util_fbo {
>
> private:
> void generate_gl_objects();
> + void attach_color_renderbuffer(const FboConfig &config);
> + void attach_color_texture(const FboConfig &config);
> + void attach_multisample_color_texture(const FboConfig
> &config);
>
> /**
> * True if generate_gl_objects has been called and
> color_tex,
> --
> 1.8.3.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20140807/dfc4f620/attachment-0001.html>
More information about the Piglit
mailing list