irr::video Namespace Reference

Data Structures

Enumerations

Functions

Variables


Enumeration Type Documentation

enum E_COLOR_FORMAT

A color format specifies how color information is stored. The Irrlicht Engine mostly uses the format ECF_A1R5G5B5.

Enumerator:
ECF_A1R5G5B5  16 bit color format. There are 5 bits for every color component, and a single bit is left for alpha information.
ECF_R5G6B5  Standard 16 bit color format.
ECF_A4R4G4B4  16 bit, 4 bits for each color,
ECF_R8G8B8  24 bit color, no alpha channel, but 8 bit for red, green and blue.
ECF_A8R8G8B8  Default 32 bit color format. 8 bits are used for every component: red, green, blue and alpha.
ECF_X8R8G8B8  32 bit color, no alpha. 8 bits for red, green and blue components.
ECF_DXT1  Compressed DXT1 color format.
ECF_DXT2  Compressed DXT2 color format.
ECF_DXT3  Compressed DXT3 color format.
ECF_DXT4  Compressed DXT4 color format.
ECF_DXT5  Compressed DXT5 color format.
ECF_L8  8 bit Luminance format.
ECF_I8  8 bit integer data
ECF_I16  16 bit integer data
ECF_I32  32 bit integer data
ECF_F32  32 bit floating point data
ECF_A16B16G16R16  64-bit integer format using 16 bits for each component.
ECF_G16R16F  32-bit float format using 16 bits for the red channel and 16 bits for the green channel.
ECF_A16B16G16R16F  64-bit float format using 16 bits for the each channel (alpha, blue, green, red).
ECF_R32F  32-bit float format using 32 bits for the red channel.
ECF_G32R32F  64-bit float format using 32 bits for the red channel and 32 bits for the green channel.
ECF_A32B32G32R32F  128-bit float format using 32 bits for the each channel (alpha, blue, green, red).
ECF_UNKNOWN  Unknown Color Format.

enum E_CUBE_SURFACE

Posi.e. front, back, left, right, top, bottom )

Enumerator:
ECS_POSX  Positive x-face of the cubemap.
ECS_NEGX  Negative x-face of the cubemap.
ECS_POSY  Positive y-face of the cubemap.
ECS_NEGY  Negative y-face of the cubemap.
ECS_POSZ  Positive z-face of the cubemap.
ECS_NEGZ  Negative z-face of the cubemap.
ECS_FORCE_32BIT  This flag is never used, it only forces the compiler to compile these enumeration values to 32 bit.

enum E_DRIVER_TYPE

Enumerator:
EDT_NULL  Null device, useful for applications to run the engine without visualisation. The null device is able to load textures, but does not render and display any graphics.
EDT_DIRECT3D9  Direct3D 9 device, only available on Win32 platforms including Win95, Win98, WinNT, Win2K, WinXP. Performs hardware accelerated rendering of 3D and 2D primitives.
EDT_OPENGL  OpenGL device, available on all Win32 platforms. Performs hardware accelerated rendering of 3D and 2D primitives.

enum E_LIGHT_TYPE

Enumerator:
ELT_POINT  point light, it has a position in space and radiates light in all directions
ELT_SPOT  spot light, similar to a point light, but restricted to a cone
ELT_DIRECTIONAL  directional light, coming from a direction from an infinite distance

enum E_MATERIAL_FLAG

Enumerator:
EMF_WIREFRAME  Draw as wireframe or filled triangles? Default: false.
EMF_POINTCLOUD  Draw as point cloud or filled triangles? Default: false.
EMF_GOURAUD_SHADING  Flat or Gouraud shading? Default: true.
EMF_LIGHTING  Will this material be lighted? Default: true.
EMF_ZBUFFER  Is the ZBuffer enabled? Default: true.
EMF_ZWRITE_ENABLE  May be written to the zbuffer or is it readonly. Default: true This flag is ignored, if the material type is a transparent type.
EMF_BACK_FACE_CULLING  Is backfaceculling enabled? Default: true.
EMF_FOG_ENABLE  Is fog enabled? Default: false.
EMF_NORMALIZE_NORMALS  Normalizes normals.You can enable this if you need to scale a dynamic lighted model. Usually, its normals will get scaled too then and it will get darker. If you enable the EMF_NORMALIZE_NORMALS flag, the normals will be normalized again, and the model will look as bright as it should.
EMF_MATERIAL_FLAG_COUNT  This is not a flag, but a value indicating how much flags there are.

enum E_MATERIAL_TYPE

Enumerator:
EMT_SOLID  Standard solid material. Only first texture is used, which is supposed to be the diffuse material.
EMT_SOLID_2_LAYER  Solid material with 2 texture layers. The second is blended onto the first using the alpha value of the vertex colors. This material is currently not implemented in OpenGL, but it works with DirectX.
EMT_LIGHTMAP  Material type with standard lightmap technique: There should be 2 textures: The first texture layer is a diffuse map, the second is a light map. Vertex light is ignored.
EMT_LIGHTMAP_ADD  Material type with lightmap technique like EMT_LIGHTMAP, but lightmap and diffuse texture are not modulated, but added instead.
EMT_LIGHTMAP_M2  Material type with standard lightmap technique: There should be 2 textures: The first texture layer is a diffuse map, the second is a light map. Vertex light is ignored. The texture colors are effectively multiplyied by 2 for brightening. like known in DirectX as D3DTOP_MODULATE2X.
EMT_LIGHTMAP_M4  Material type with standard lightmap technique: There should be 2 textures: The first texture layer is a diffuse map, the second is a light map. Vertex light is ignored. The texture colors are effectively multiplyied by 4 for brightening. like known in DirectX as D3DTOP_MODULATE4X.
EMT_LIGHTMAP_LIGHTING  Like EMT_LIGHTMAP, but also supports dynamic lighting.
EMT_LIGHTMAP_LIGHTING_M2  Like EMT_LIGHTMAP_M2, but also supports dynamic lighting.
EMT_LIGHTMAP_LIGHTING_M4  Like EMT_LIGHTMAP_4, but also supports dynamic lighting.
EMT_DETAIL_MAP  Detail mapped material. The first texture is diffuse color map, the second is added to this and usually displayed with a bigger scale value so that it adds more detail. The detail map is added to the diffuse map using ADD_SIGNED, so that it is possible to add and substract color from the diffuse map. For example a value of (127,127,127) will not change the appearance of the diffuse map at all. Often used for terrain rendering.
EMT_SPHERE_MAP  Makes the material look like it was reflection the environment around it. To make this possible, a texture called 'sphere map' is used, which must be set as Texture1.
EMT_REFLECTION_2_LAYER  A reflecting material with an optional additional non reflecting texture layer. The reflection map should be set as Texture 1.
EMT_TRANSPARENT_ADD_COLOR  A transparent material. Only the first texture is used. The new color is calculated by simply adding the source color and the dest color. This means if for example a billboard using a texture with black background and a red circle on it is drawed with this material, the result is that only the red circle will be drawn a little bit transparent, and everything which was black is 100% transparent and not visible. This material type is useful for e.g. particle effects.
EMT_TRANSPARENT_ALPHA_CHANNEL  Makes the material transparent based on the texture alpha channel. The final color is blended together from the destination color and the texture color, using the alpha channel value as blend factor. Only first texture is used. If you are using this material with small textures, it is a good idea to load the texture in 32 bit mode (video::IVideoDriver::setTextureCreationFlag()). Also, an alpha ref is used, which can be manipulated using SMaterial::MaterialTypeParam. If set to 0, the alpha ref gets its default value which is 0.5f and which means that pixels with an alpha value >127 will be written, others not. In other, simple words: this value controls how sharp the edges become when going from a transparent to a solid spot on the texture.
EMT_TRANSPARENT_ALPHA_CHANNEL_REF  Makes the material transparent based on the texture alpha channel. If the alpha channel value is greater than 127, a pixel is written to the target, otherwise not. This material does not use alpha blending and is a lot faster than EMT_TRANSPARENT_ALPHA_CHANNEL. It is ideal for drawing stuff like leafes of plants, because the borders are not blurry but sharp. Only first texture is used. If you are using this material with small textures and 3d object, it is a good idea to load the texture in 32 bit mode (video::IVideoDriver::setTextureCreationFlag()).
EMT_TRANSPARENT_VERTEX_ALPHA  Makes the material transparent based on the vertex alpha value.
EMT_TRANSPARENT_REFLECTION_2_LAYER  A transparent reflecting material with an optional additional non reflecting texture layer. The reflection map should be set as Texture 1. The transparency depends on the alpha value in the vertex colors. A texture which will not reflect can be set als Texture 2. Please note that this material type is currently not 100% implemented in OpenGL. It works in Direct3D.
EMT_NORMAL_MAP_SOLID  A solid normal map renderer. First texture is the color map, the second should be the normal map. Note that you should use this material only when drawing geometry consisting of vertices of type S3DVertexTangents (EVT_TANGENTS). You can convert any mesh into this format using IMeshManipulator::createMeshWithTangents() (See SpecialFX2 Tutorial). This shader runs on vertex shader 1.1 and pixel shader 1.1 capable hardware and falls back on a fixed function lighted material if this hardware is not available. Only two lights are supported by this shader, if there are more, the nearest two are chosen. Currently, this shader is only implemented for the D3D8 and D3D9 renderers.
EMT_NORMAL_MAP_TRANSPARENT_ADD_COLOR  A transparent normal map renderer. First texture is the color map, the second should be the normal map. Note that you should use this material only when drawing geometry consisting of vertices of type S3DVertexTangents (EVT_TANGENTS). You can convert any mesh into this format using IMeshManipulator::createMeshWithTangents() (See SpecialFX2 Tutorial). This shader runs on vertex shader 1.1 and pixel shader 1.1 capable hardware and falls back on a fixed function lighted material if this hardware is not available. Only two lights are supported by this shader, if there are more, the nearest two are chosen. Currently, this shader is only implemented for the D3D8 and D3D9 renderers.
EMT_NORMAL_MAP_TRANSPARENT_VERTEX_ALPHA  A transparent (based on the vertex alpha value) normal map renderer. First texture is the color map, the second should be the normal map. Note that you should use this material only when drawing geometry consisting of vertices of type S3DVertexTangents (EVT_TANGENTS). You can convert any mesh into this format using IMeshManipulator::createMeshWithTangents() (See SpecialFX2 Tutorial). This shader runs on vertex shader 1.1 and pixel shader 1.1 capable hardware and falls back on a fixed function lighted material if this hardware is not available. Only two lights are supported by this shader, if there are more, the nearest two are chosen. Currently, this shader is only implemented for the D3D8 and D3D9 renderers.
EMT_PARALLAX_MAP_SOLID  Just like EMT_NORMAL_MAP_SOLID, but uses parallax mapping too, which looks a lot more realistic. This only works when the hardware supports at least vertex shader 1.1 and pixel shader 1.4. First texture is the color map, the second should be the normal map. The normal map texture should contain the height value in the alpha component. The IVideoDriver::makeNormalMapTexture() method writes this value automaticly when creating normal maps from a heightmap when using a 32 bit texture. The height scale of the material (affecting the bumpiness) is being controlled by the SMaterial::MaterialTypeParam member. If set to zero, the default value (0.02f) will be applied. Otherwise the value set in SMaterial::MaterialTypeParam is taken. This value depends on with which scale the texture is mapped on the material. Too high or low values of MaterialTypeParam can result in strange artifacts.
EMT_PARALLAX_MAP_TRANSPARENT_ADD_COLOR  A material just like EMT_PARALLAX_MAP_SOLID, but it is transparent, using EMT_TRANSPARENT_ADD_COLOR as base material.
EMT_PARALLAX_MAP_TRANSPARENT_VERTEX_ALPHA  A material just like EMT_PARALLAX_MAP_SOLID, but it is transparent, using EMT_TRANSPARENT_VERTEX_ALPHA as base material.
EMT_TEXTURE_SPLAT  A material for doing texutre splatting, the first texture is the alpha layer, the second texture is the texture to paint or splat
EMT_TEXTURE_SPLAT_2  Material for doing a texture splat/alpha blend with 2 textures and an alpha texture. The first texture is the base texture, the second is the alpha, and the 3rd is the blend texture to be blended with the 1st/base texture using the alpha of the 2nd texture
EMT_FORCE_32BIT  This value is not used. It only forces this enumeration to compile in 32 bit.

enum E_NOISE_GENERATION

Enumerator:
ENG_STANDARD 
ENG_FILTERED 
ENG_DISTANCE 
ENG_COS_FILTERED 
ENG_SIN_FILTERED 
ENG_TAN_FILTERED 
ENG_TEST4 

enum E_PIXEL_SHADER_TYPE

Enumerator:
EPST_PS_1_1 
EPST_PS_1_2 
EPST_PS_1_3 
EPST_PS_1_4 
EPST_PS_2_0 
EPST_PS_2_a 
EPST_PS_2_b 
EPST_PS_3_0 
EPST_COUNT  This is not a type, but a value indicating how much types there are.

enum E_PRIMITIVE_TYPE

Enumerator:
EPT_POINTS  All vertices are non-connected points.
EPT_LINE_STRIP  All vertices form a single connected line.
EPT_LINE_LOOP  Just as LINE_STRIP, but the last and the first vertex is also connected.
EPT_LINES  Every two vertices are connected creating n/2 lines.
EPT_TRIANGLE_STRIP  After the first two vertices each vertex defines a new triangle. Always the two last and the new one form a new triangle.
EPT_TRIANGLE_FAN  After the first two vertices each vertex defines a new triangle. All around the common first vertex.
EPT_TRIANGLE_LIST  Explicitly set all vertices for each triangle.
EPT_QUAD_STRIP  After the first two vertices each further tw vetices create a quad with the preceding two.
EPT_QUADS  Every four vertices create a quad.
EPT_POLYGON  Just as LINE_LOOP, but filled.

enum E_TEXTURE_ADDRESS_MODE

Enumerator:
ETAM_WRAP 
ETAM_MIRROR 
ETAM_CLAMP 

enum E_TEXTURE_ANIMATION_TYPE

Enumerator:
ETAT_PLAY_ONCE  Play the animation one time, first to last.
ETAT_REPEAT  Repeat the animation, playing it from frist to last, after last, skip back to first.
ETAT_BACK_AND_FORTH_ONCE  Play the animation once, from first to last, and then from last to first.
ETAT_BACK_AND_FORTH_REPEAT  Repeat the animation, from first to last, then last to first.

enum E_TEXTURE_CREATION_FLAG

Enumeration flags telling the video driver in which format textures should be created.

Enumerator:
ETCF_ALWAYS_16_BIT  Forces the driver to create 16 bit textures always, indepenent of which format the file on disk has. When choosing this you may loose some color detail, but gain much speed and memory. 16 bit textures can be transferred twice as fast as 32 bit textures and only use half of the space in memory. When using this flag, it does not make sence to use the flags ETCF_ALWAYS_32_BIT, ETCF_OPTIMIZED_FOR_QUALITY, or ETCF_OPTIMIZED_FOR_SPEED at the same time.
ETCF_ALWAYS_32_BIT  Forces the driver to create 32 bit textures always, indepenent of which format the file on disk has. Please note that some drivers (like the software device) will ignore this, because they only are able to create and use 16 bit textures. When using this flag, it does not make sence to use the flags ETCF_ALWAYS_16_BIT, ETCF_OPTIMIZED_FOR_QUALITY, or ETCF_OPTIMIZED_FOR_SPEED at the same time.
ETCF_OPTIMIZED_FOR_QUALITY  Lets the driver decide in which format the texutures are created and tries to make the textures look as good as possible. Usually it simply chooses the format in which the texture was stored on disk. When using this flag, it does not make sence to use the flags ETCF_ALWAYS_16_BIT, ETCF_ALWAYS_32_BIT, or ETCF_OPTIMIZED_FOR_SPEED at the same time.
ETCF_OPTIMIZED_FOR_SPEED  Lets the driver decide in which format the texutures are created and tries to create them maximizing render speed. When using this flag, it does not make sence to use the flags ETCF_ALWAYS_16_BIT, ETCF_ALWAYS_32_BIT, or ETCF_OPTIMIZED_FOR_QUALITY, at the same time.
ETCF_CREATE_MIP_MAPS  Automaticly creates mip map levels for the textures.
ETCF_FORCE_32_BIT_DO_NOT_USE  compile these enumeration values to 32 bit.

This flag is never used, it only forces the compiler to

enum E_TEXTURE_FILTER_MODE

Enumerator:
ETFM_POINT 
ETFM_BILINEAR 
ETFM_TRILINEAR 
ETFM_ANISOTROPIC 

enum E_TEXTURE_TYPE

Enumerator:
ETT_2D  Standard Texture ( ITexture ).
ETT_3D  Volume Texture( ITexture3D ).
ETT_CUBE  Cube Texture ( ITextureCUBE ).
ETT_FORCE_32BIT  compile these enumeration values to 32 bit.

This flag is never used, it only forces the compiler to

enum E_TRANSFORMATION_STATE

Enumerator:
ETS_VIEW  View transformation.
ETS_WORLD  World transformation.
ETS_PROJECTION  Projection transformation.
ETS_COUNT  Not used.

enum E_VERTEX_SHADER_TYPE

Enumerator:
EVST_VS_1_1 
EVST_VS_2_0 
EVST_VS_2_a 
EVST_VS_3_0 
EVST_COUNT  This is not a type, but a value indicating how much types there are.

enum E_VERTEX_TYPE

Enumerator:
EVT_STANDARD  Standard vertex type used by the Irrlicht engine, video::S3DVertex.
EVT_2TCOORDS  Vertex with two texture coordinates, video::S3DVertex2TCoords. Usually used for geometry with lightmaps or other special materials.
EVT_TANGENTS  Vertex with a tangent and binormal vector, video::S3DVertexTangents. Usually used for tangent space normal mapping.
EVT_CUSTOM  Vertex with a custom defined format.

enum E_VIDEO_DRIVER_FEATURE

Enumerator:
EVDF_RENDER_TO_TARGET  Is driver able to render to a surface?
EVDF_MRTS  Are Multiple Render Targtes Supported?
EVDF_MRTS_DIFFERENT_BIT_DEPTHS  If MRTS are supported, can the device support MRTs with different bit depths?
EVDF_HARDWARE_TL  Is hardeware transform and lighting supported?
EVDF_MULTITEXTURE  Are multiple textures per material possible?
EVDF_BILINEAR_FILTER  Is driver able to render with a bilinear filter applied?
EVDF_MIP_MAP  Can the driver handle mip maps?
EVDF_MIP_MAP_AUTO_UPDATE  Can the driver update mip maps automatically?
EVDF_STENCIL_BUFFER  Are stencilbuffers switched on and does the device support stencil buffers?
EVDF_VERTEX_SHADER_1_1  Is Vertex Shader 1.1 supported?
EVDF_VERTEX_SHADER_2_0  Is Vertex Shader 2.0 supported?
EVDF_VERTEX_SHADER_3_0  Is Vertex Shader 3.0 supported?
EVDF_PIXEL_SHADER_1_1  Is Pixel Shader 1.1 supported?
EVDF_PIXEL_SHADER_1_2  Is Pixel Shader 1.2 supported?
EVDF_PIXEL_SHADER_1_3  Is Pixel Shader 1.3 supported?
EVDF_PIXEL_SHADER_1_4  Is Pixel Shader 1.4 supported?
EVDF_PIXEL_SHADER_2_0  Is Pixel Shader 2.0 supported?
EVDF_PIXEL_SHADER_3_0  Is Pixel Shader 3.0 supported?
EVDF_ARB_GLSL  Is GLSL supported?
EVDF_HLSL  Is HLSL supported?
EVDF_NPOT_TEXTURES  Is non-power of two textures supported?
EVDF_COMPRESSED_TEXTURES  Covers all DXT1 - DXT5 formats.
EVDF_A1R5G5G5_TEXTURES  A1R5G5B5.
EVDF_R5G6B5_TEXTURES  R5G6B5.
EVDF_A4R4G4B4_TEXTURES  A4R4G4B4.
EVDF_X8R8G8B8_TEXTURES  X8R8G8B8.
EVDF_A8R8G8B8_TEXTURES  A8R8G8B8.
EVDF_L8_TEXTURES  L8.
EVDF_FRAMEBUFFER_OBJECT  OpenGL only. FrameBuffer support.


Function Documentation

u32 irr::video::A1R5G5B5toA8R8G8B8 ( const u32 &  color  )  [inline]

u16 irr::video::A1R5G5B5toR5G6B5 ( const u16 &  color  )  [inline]

u32 irr::video::A4R4G4B4toA8R8G8B8 ( const u16 &  color  )  [inline]

u16 irr::video::A8R8G8B8toA1R5G5B5 ( const u32 &  color  )  [inline]

u16 irr::video::A8R8G8B8toR5G6B6 ( const u32 &  color  )  [inline]

IImageLoader * createImageLoaderBMP ( video::IVideoDriver *  driver  ) 

IImageLoader * createImageLoaderDDS ( video::IVideoDriver *  driver  ) 

IImageLoader * createImageLoaderJPG ( video::IVideoDriver *  driver  ) 

IImageLoader * createImageLoaderPCX ( video::IVideoDriver *  driver  ) 

IImageLoader * createImageLoaderPNG ( video::IVideoDriver *  driver  ) 

IImageLoader * createImageLoaderPSD ( video::IVideoDriver *  driver  ) 

IImageLoader * createImageLoaderRAW ( video::IVideoDriver *  driver  ) 

IImageLoader * createImageLoaderTGA ( video::IVideoDriver *  driver  ) 

IImageWriter * createImageWriterBMP (  ) 

IImageWriter * createImageWriterJPG (  ) 

IImageWriter * createImageWriterPCX (  ) 

IImageWriter * createImageWriterPNG (  ) 

IImageWriter * createImageWriterPPM (  ) 

IImageWriter * createImageWriterPSD (  ) 

IImageWriter * createImageWriterTGA (  ) 

IVideoDriver * createNullDriver ( io::IFileSystem *  io,
const core::dimension2d< s32 > &  screenSize 
)

IVideoDriver* irr::video::createOpenGLDriver ( const core::dimension2d< s32 > &  screenSize,
HWND  window,
u32  bits,
bool  fullscreen,
bool  stencilBuffer,
bool  vsync,
io::IFileSystem *  io,
bool  antiAlias 
)

u32 irr::video::getAlpha ( const u16 &  color  )  [inline]

u32 irr::video::getBlue ( const u16 &  color  )  [inline]

Returns the blue component from A1R5G5B5 color Shift left by 3 to get 8 bit value.

u32 irr::video::getGreen ( const u16 &  color  )  [inline]

Returns the green component from A1R5G5B5 color Shift left by 3 to get 8 bit value.

u32 irr::video::getLuminance ( const u16 &  color  )  [inline]

u32 irr::video::getRed ( const u16 &  color  )  [inline]

Returns the red component from A1R5G5B5 color. Shift left by 3 to get 8 bit value.

E_TEXTURE_CREATION_FLAG irr::video::getTextureFormatFromFlags ( u32  flags  )  [inline]

Helper function, helps to get the wished texture creation format from the flags. Returns either ETCF_ALWAYS_32_BIT, ETCF_ALWAYS_16_BIT, ETCF_OPTIMIZED_FOR_QUALITY, or ETCF_OPTIMIZED_FOR_SPEED.

u16 irr::video::R5G6B5toA1R5G5B5 ( const u16 &  color  )  [inline]

u32 irr::video::R5G6B5toA8R8G8B8 ( const u16 &  color  )  [inline]

u16 irr::video::RGB16 ( const u32 &  r,
const u32 &  g,
const u32 &  b 
) [inline]

u16 irr::video::RGBA16 ( const u32 &  r,
const u32 &  g,
const u32 &  b,
const u32 &  a 
) [inline]

u16 irr::video::X8R8G8B8toA1R5G5B5 ( const u32 &  color  )  [inline]

u16 irr::video::X8R8G8B8toA8R8G8B8 ( const u32 &  color  )  [inline]


Variable Documentation

const s32 MATERIAL_MAX_TEXTURES = 4

struct irr::video::STGAFooter PACK_STRUCT

struct irr::video::STGAHeader PACK_STRUCT

struct irr::video::PsdHeader PACK_STRUCT

struct irr::video::SPCXHeader PACK_STRUCT

struct irr::video::SBMPHeader PACK_STRUCT

const char* const PIXEL_SHADER_TYPE_NAMES[]

Initial value:

 {
   "ps_1_1", 
   "ps_1_2",
   "ps_1_3",
   "ps_1_4",
   "ps_2_0",
   "ps_2_a",
   "ps_2_b",
   "ps_3_0",
   0 }

const char* const VERTEX_SHADER_TYPE_NAMES[]

Initial value:

 {
   "vs_1_1",
   "vs_2_0",
   "vs_2_a",
   "vs_3_0",
   0 }


Generated on Fri Apr 27 14:48:30 2007 for IrrSpintz by  doxygen 1.5.1-p1