Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: core/cross/cairo/texture_cairo.h

Issue 2825074: Initial version rendering 2D path for O3D. This will eventually allow O3D app... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/o3d/
Patch Set: '' Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « core/cross/cairo/renderer_cairo.cc ('k') | core/cross/cairo/texture_cairo.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2010, Google Inc. 2 * Copyright 2010, Google Inc.
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 24 matching lines...) Expand all
35 35
36 #ifndef O3D_CORE_CROSS_CAIRO_TEXTURE_CAIRO_H_ 36 #ifndef O3D_CORE_CROSS_CAIRO_TEXTURE_CAIRO_H_
37 #define O3D_CORE_CROSS_CAIRO_TEXTURE_CAIRO_H_ 37 #define O3D_CORE_CROSS_CAIRO_TEXTURE_CAIRO_H_
38 38
39 #include "core/cross/texture.h" 39 #include "core/cross/texture.h"
40 40
41 namespace o3d { 41 namespace o3d {
42 42
43 class RendererCairo; 43 class RendererCairo;
44 44
45 struct TextureResource {
46 // Current Frame Data Source
47 const void* data;
48 // X coordinate
49 unsigned left;
50 // Y coordinate
51 unsigned top;
52 // Current Frame Source Width
53 unsigned width;
54 // Current Frame Source Height
55 unsigned height;
56 // Current Frame Source Pitch
57 int pitch;
58 };
59
45 // Texture2DCairo implements the Texture2D interface. 60 // Texture2DCairo implements the Texture2D interface.
46 class TextureCairo : public Texture2D { 61 class TextureCairo : public Texture2D {
47 public: 62 public:
48 typedef SmartPointer<TextureCairo> Ref; 63 typedef SmartPointer<TextureCairo> Ref;
49 64
50 // Creates a new Texture2DCairo with the given specs. If the texture 65 // Creates a new Texture2DCairo with the given specs. If the texture
51 // creation fails then it returns NULL otherwise it returns a pointer to the 66 // creation fails then it returns NULL otherwise it returns a pointer to the
52 // newly created Texture object. 67 // newly created Texture object.
53 static TextureCairo* Create(ServiceLocator* service_locator, 68 static TextureCairo* Create(ServiceLocator* service_locator,
54 Texture::Format format, 69 Texture::Format format,
55 int levels, 70 int levels,
56 int width, 71 int width,
57 int height, 72 int height,
58 bool enable_render_surfaces); 73 bool enable_render_surfaces);
59 74
60 virtual ~TextureCairo(); 75 virtual ~TextureCairo();
61 76
62 // Overridden from Texture2D 77 // Overridden from Texture2D
63 virtual void SetRect(int level, 78 virtual void SetRect(int level,
64 unsigned left, 79 unsigned left,
65 unsigned top, 80 unsigned top,
66 unsigned width, 81 unsigned width,
67 unsigned height, 82 unsigned height,
68 const void* src_data, 83 const void* src_data,
69 int src_pitch); 84 int src_pitch);
70 85
86 virtual TextureResource* GetResource();
87
71 // Gets a RGBASwizzleIndices that contains a mapping from 88 // Gets a RGBASwizzleIndices that contains a mapping from
72 // RGBA to the internal format used by the rendering API. 89 // RGBA to the internal format used by the rendering API.
73 virtual const RGBASwizzleIndices& GetABGR32FSwizzleIndices(); 90 virtual const RGBASwizzleIndices& GetABGR32FSwizzleIndices();
74 91
75 protected: 92 protected:
76 // Overridden from Texture2D 93 // Overridden from Texture2D
77 virtual bool PlatformSpecificLock(int level, void** texture_data, int* pitch, 94 virtual bool PlatformSpecificLock(int level, void** texture_data, int* pitch,
78 AccessMode mode); 95 AccessMode mode);
79 96
80 // Overridden from Texture2D 97 // Overridden from Texture2D
81 virtual bool PlatformSpecificUnlock(int level); 98 virtual bool PlatformSpecificUnlock(int level);
82 99
83 // Overridden from Texture2D 100 // Overridden from Texture2D
84 virtual RenderSurface::Ref PlatformSpecificGetRenderSurface(int mip_level); 101 virtual RenderSurface::Ref PlatformSpecificGetRenderSurface(int mip_level);
85 102
86 // Returns the implementation-specific texture handle for this texture. 103 // Returns the implementation-specific texture handle for this texture.
87 virtual void* GetTextureHandle() const; 104 virtual void* GetTextureHandle() const;
88 105
89 // The 2d renderer object to be used by client 106 // The 2d renderer object to be used by client.
90 RendererCairo* renderer_; 107 RendererCairo* renderer_;
91 108
109 // Texture Resource for this particular instance.
110 TextureResource resource_;
111
92 private: 112 private:
93 // Initializes the Texture2D. 113 // Initializes the Texture2D.
94 TextureCairo(ServiceLocator* service_locator, 114 TextureCairo(ServiceLocator* service_locator,
95 Texture::Format format, 115 Texture::Format format,
96 int levels, 116 int levels,
97 int width, 117 int width,
98 int height, 118 int height,
99 bool enable_render_surfaces); 119 bool enable_render_surfaces);
100 }; 120 };
101 121
102 } // namespace o3d 122 } // namespace o3d
103 123
104 #endif // O3D_CORE_CROSS_CAIRO_TEXTURE_CAIRO_H_ 124 #endif // O3D_CORE_CROSS_CAIRO_TEXTURE_CAIRO_H_
105 125
OLDNEW
« no previous file with comments | « core/cross/cairo/renderer_cairo.cc ('k') | core/cross/cairo/texture_cairo.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698