Commit: eabd433f3511b7384987f59f6816e492c9aa1c1a
Author: Nicholas Bishop
Date:   Thu Feb 12 19:06:19 2015 +0100
Branches: cycles-ptex-49
https://developer.blender.org/rBeabd433f3511b7384987f59f6816e492c9aa1c1a

Merge remote-tracking branch 'origin/master' into cycles-ptex-49

Conflicts:
        source/blender/gpu/GPU_extensions.h

===================================================================



===================================================================

diff --cc source/blender/gpu/GPU_extensions.h
index 262399d,739d456..9046f7c
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@@ -112,9 -118,8 +118,13 @@@ GPUTexture *GPU_texture_create_2D(int w
  GPUTexture *GPU_texture_create_3D(int w, int h, int depth, int channels, 
float *fpixels);
  GPUTexture *GPU_texture_create_depth(int w, int h, char err_out[256]);
  GPUTexture *GPU_texture_create_vsm_shadow_map(int size, char err_out[256]);
++
 +      // TODO
 +GPUTexture *GPU_ptex_texture_from_blender(struct Image *ima,
 +      struct ImageUser *iuser);
++
+ GPUTexture *GPU_texture_create_2D_procedural(int w, int h, float *pixels, 
char err_out[256]);
+ GPUTexture *GPU_texture_create_1D_procedural(int w, float *pixels, char 
err_out[256]);
  GPUTexture *GPU_texture_from_blender(struct Image *ima,
        struct ImageUser *iuser, bool is_data, double time, int mipmap);
  GPUTexture *GPU_texture_from_preview(struct PreviewImage *prv, int mipmap);
diff --cc source/blender/gpu/intern/gpu_extensions.c
index 5e99db2,4d1a977..7f6dfc1
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@@ -47,12 -47,9 +47,13 @@@
  
  #include "GPU_draw.h"
  #include "GPU_extensions.h"
+ #include "GPU_compositing.h"
  #include "GPU_simple_shader.h"
  
 +// TODO
 +#include "BKE_image.h"
 +#include "IMB_imbuf_types.h"
 +
  #include "intern/gpu_extensions_private.h"
  
  #include <stdlib.h>
@@@ -702,54 -773,6 +777,54 @@@ GPUTexture *GPU_texture_create_1D_proce
        return tex;
  }
  
 +// Very TODO, the code in this file could use a bit of a scrub
 +GPUTexture *GPU_ptex_texture_from_blender(Image *ima, ImageUser 
*UNUSED(iuser))
 +{
 +
 +      ImBuf *ibuf;
 +      GPUTexture *tex;
 +      int size;
 +      BPXRect *data;
 +      void *lock;
 +
 +      if (ima->ptex_gputexture) {
 +              return ima->ptex_gputexture;
 +      }
 +
 +      ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
 +      if (!ibuf) return NULL;
 +
 +      size = ibuf->num_ptex_regions;
 +      data = ibuf->ptex_regions;
 +
-       tex = GPU_texture_create_nD(size, 1, 2, NULL, 0, NULL);
++      tex = GPU_texture_create_nD(size, 1, 2, NULL, 0, GPU_HDR_NONE, 4, NULL);
 +      ima->ptex_gputexture = tex;
 +
 +      if (tex) {
 +              /* Now we tweak some of the settings */
 +              /* glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, 
GL_CLAMP_TO_EDGE); */
 +              /* glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, 
GL_CLAMP_TO_EDGE); */
 +              // TODO
 +              float (*tmp)[4] = MEM_mallocN(sizeof(*tmp) * size, "tmp");
 +              int i;
 +              for (i = 0; i < size; i++) {
 +                      const BPXRect *rect = &data[i];
 +                      tmp[i][0] = rect->xbegin;
 +                      tmp[i][1] = rect->ybegin;
 +                      tmp[i][2] = rect->xend - rect->xbegin;
 +                      tmp[i][3] = rect->yend - rect->ybegin;
 +              }
 +              glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, size, 1, 0, GL_RGBA, 
GL_FLOAT, tmp);
 +              MEM_freeN(tmp);
 +
 +              GPU_texture_unbind(tex);
 +      }
 +
 +      BKE_image_release_ibuf(ima, ibuf, lock);
 +
 +      return tex;
 +}
 +
  void GPU_invalid_tex_init(void)
  {
        float color[4] = {1.0f, 0.0f, 1.0f, 1.0};

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to